code.gitea.io/gitea@v1.22.3/models/user/setting_test.go (about)

     1  // Copyright 2021 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package user_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	"code.gitea.io/gitea/models/unittest"
    11  	user_model "code.gitea.io/gitea/models/user"
    12  
    13  	"github.com/stretchr/testify/assert"
    14  )
    15  
    16  func TestSettings(t *testing.T) {
    17  	keyName := "test_user_setting"
    18  	assert.NoError(t, unittest.PrepareTestDatabase())
    19  
    20  	newSetting := &user_model.Setting{UserID: 99, SettingKey: keyName, SettingValue: "Gitea User Setting Test"}
    21  
    22  	// create setting
    23  	err := user_model.SetUserSetting(db.DefaultContext, newSetting.UserID, newSetting.SettingKey, newSetting.SettingValue)
    24  	assert.NoError(t, err)
    25  	// test about saving unchanged values
    26  	err = user_model.SetUserSetting(db.DefaultContext, newSetting.UserID, newSetting.SettingKey, newSetting.SettingValue)
    27  	assert.NoError(t, err)
    28  
    29  	// get specific setting
    30  	settings, err := user_model.GetSettings(db.DefaultContext, 99, []string{keyName})
    31  	assert.NoError(t, err)
    32  	assert.Len(t, settings, 1)
    33  	assert.EqualValues(t, newSetting.SettingValue, settings[keyName].SettingValue)
    34  
    35  	settingValue, err := user_model.GetUserSetting(db.DefaultContext, 99, keyName)
    36  	assert.NoError(t, err)
    37  	assert.EqualValues(t, newSetting.SettingValue, settingValue)
    38  
    39  	settingValue, err = user_model.GetUserSetting(db.DefaultContext, 99, "no_such")
    40  	assert.NoError(t, err)
    41  	assert.EqualValues(t, "", settingValue)
    42  
    43  	// updated setting
    44  	updatedSetting := &user_model.Setting{UserID: 99, SettingKey: keyName, SettingValue: "Updated"}
    45  	err = user_model.SetUserSetting(db.DefaultContext, updatedSetting.UserID, updatedSetting.SettingKey, updatedSetting.SettingValue)
    46  	assert.NoError(t, err)
    47  
    48  	// get all settings
    49  	settings, err = user_model.GetUserAllSettings(db.DefaultContext, 99)
    50  	assert.NoError(t, err)
    51  	assert.Len(t, settings, 1)
    52  	assert.EqualValues(t, updatedSetting.SettingValue, settings[updatedSetting.SettingKey].SettingValue)
    53  
    54  	// delete setting
    55  	err = user_model.DeleteUserSetting(db.DefaultContext, 99, keyName)
    56  	assert.NoError(t, err)
    57  	settings, err = user_model.GetUserAllSettings(db.DefaultContext, 99)
    58  	assert.NoError(t, err)
    59  	assert.Len(t, settings, 0)
    60  }