status-im/status-go

View on GitHub
protocol/requests/migrate_keystore_dir_test.go

Summary

Maintainability
A
0 mins
Test Coverage
package requests

import (
    "testing"

    "github.com/stretchr/testify/require"

    "github.com/status-im/status-go/multiaccounts"
)

func TestMigrateKeystoreDir_Validate(t *testing.T) {
    testCases := []struct {
        name        string
        req         MigrateKeystoreDir
        expectedErr string
    }{
        {
            name: "valid request",
            req: MigrateKeystoreDir{
                Account:  multiaccounts.Account{Name: "test-account"},
                Password: "test-password",
                OldDir:   "/old/keystore/dir",
                NewDir:   "/new/keystore/dir",
            },
        },
        {
            name: "empty account",
            req: MigrateKeystoreDir{
                Password: "test-password",
                OldDir:   "/old/keystore/dir",
                NewDir:   "/new/keystore/dir",
            },
        },
        {
            name: "empty password",
            req: MigrateKeystoreDir{
                Account: multiaccounts.Account{Name: "test-account"},
                OldDir:  "/old/keystore/dir",
                NewDir:  "/new/keystore/dir",
            },
            expectedErr: "Password",
        },
        {
            name: "empty old dir",
            req: MigrateKeystoreDir{
                Account:  multiaccounts.Account{Name: "test-account"},
                Password: "test-password",
                NewDir:   "/new/keystore/dir",
            },
            expectedErr: "OldDir",
        },
        {
            name: "empty new dir",
            req: MigrateKeystoreDir{
                Account:  multiaccounts.Account{Name: "test-account"},
                Password: "test-password",
                OldDir:   "/old/keystore/dir",
            },
            expectedErr: "NewDir",
        },
    }

    for _, tc := range testCases {
        t.Run(tc.name, func(t *testing.T) {
            err := tc.req.Validate()
            if tc.expectedErr != "" {
                require.Error(t, err)
                require.Contains(t, err.Error(), tc.expectedErr)
            } else {
                require.NoError(t, err)
            }
        })
    }
}