mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-24 09:03:14 +01:00
6ae27c9a9b
* feature: add User entity to Account * test: new file store creation test * test: add FileStore persist-restore tests * test: add GetOrCreateAccountByUser Accountmanager test * refactor: rename account manager users file * refactor: use userId instead of accountId when handling Management HTTP API * fix: new account creation for every request * fix: golint * chore: add account creator to Account Entity to identify who created the account. * chore: use xid ID generator for account IDs * fix: test failures * test: check that CreatedBy is stored when account is stored * chore: add account copy method * test: remove test for non existent GetOrCreateAccount func * chore: add accounts conversion function * fix: golint * refactor: simplify admin user creation * refactor: move migration script to a separate package
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/wiretrustee/wiretrustee/management/server"
|
|
"github.com/wiretrustee/wiretrustee/util"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestConvertAccounts(t *testing.T) {
|
|
|
|
storeDir := t.TempDir()
|
|
|
|
err := util.CopyFileContents("../testdata/storev1.json", filepath.Join(storeDir, "store.json"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
store, err := server.NewStore(storeDir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
convertedStore, err := server.NewStore(filepath.Join(storeDir, "converted"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
err = Convert(store, convertedStore)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if len(store.Accounts) != len(convertedStore.Accounts) {
|
|
t.Errorf("expecting the same number of accounts after conversion")
|
|
}
|
|
|
|
for _, account := range store.Accounts {
|
|
convertedAccount, err := convertedStore.GetUserAccount(account.Id)
|
|
if err != nil || convertedAccount == nil {
|
|
t.Errorf("expecting Account %s to be converted", account.Id)
|
|
return
|
|
}
|
|
if convertedAccount.CreatedBy != account.Id {
|
|
t.Errorf("expecting converted Account.CreatedBy field to be equal to the old Account.Id")
|
|
return
|
|
}
|
|
if convertedAccount.Id == account.Id {
|
|
t.Errorf("expecting converted Account.Id to be different from Account.Id")
|
|
return
|
|
}
|
|
if len(convertedAccount.Users) != 1 {
|
|
t.Errorf("expecting converted Account.Users to be of size 1")
|
|
return
|
|
}
|
|
user := convertedAccount.Users[account.Id]
|
|
if user == nil {
|
|
t.Errorf("expecting to find a user in converted Account.Users")
|
|
return
|
|
}
|
|
if user.Role != server.UserRoleAdmin {
|
|
t.Errorf("expecting to find a user in converted Account.Users with a role Admin")
|
|
return
|
|
}
|
|
|
|
for peerId := range account.Peers {
|
|
convertedPeer := convertedAccount.Peers[peerId]
|
|
if convertedPeer == nil {
|
|
t.Errorf("expecting Account Peer of StoreV1 to be found in StoreV2")
|
|
return
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|