gitea源码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package system_test
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/db"
  7. "code.gitea.io/gitea/models/system"
  8. "code.gitea.io/gitea/models/unittest"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestSettings(t *testing.T) {
  12. keyName := "test.key"
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. assert.NoError(t, db.TruncateBeans(t.Context(), &system.Setting{}))
  15. rev, settings, err := system.GetAllSettings(t.Context())
  16. assert.NoError(t, err)
  17. assert.Equal(t, 1, rev)
  18. assert.Len(t, settings, 1) // there is only one "revision" key
  19. err = system.SetSettings(t.Context(), map[string]string{keyName: "true"})
  20. assert.NoError(t, err)
  21. rev, settings, err = system.GetAllSettings(t.Context())
  22. assert.NoError(t, err)
  23. assert.Equal(t, 2, rev)
  24. assert.Len(t, settings, 2)
  25. assert.Equal(t, "true", settings[keyName])
  26. err = system.SetSettings(t.Context(), map[string]string{keyName: "false"})
  27. assert.NoError(t, err)
  28. rev, settings, err = system.GetAllSettings(t.Context())
  29. assert.NoError(t, err)
  30. assert.Equal(t, 3, rev)
  31. assert.Len(t, settings, 2)
  32. assert.Equal(t, "false", settings[keyName])
  33. // setting the same value should not trigger DuplicateKey error, and the "version" should be increased
  34. err = system.SetSettings(t.Context(), map[string]string{keyName: "false"})
  35. assert.NoError(t, err)
  36. rev, settings, err = system.GetAllSettings(t.Context())
  37. assert.NoError(t, err)
  38. assert.Len(t, settings, 2)
  39. assert.Equal(t, 4, rev)
  40. }