github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/stellar/stellarsvc/identify_test.go (about) 1 package stellarsvc 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/keybase/client/go/engine" 10 "github.com/keybase/client/go/kbtest" 11 "github.com/keybase/client/go/libkb" 12 "github.com/keybase/client/go/protocol/keybase1" 13 ) 14 15 func TestIdentifyWithStellarAccount(t *testing.T) { 16 tcs, cleanup := setupTestsWithSettings(t, []usetting{usettingFull, usettingFull}) 17 defer cleanup() 18 19 // Create wallet as user 0. User 0 will be the one being identified. 20 acceptDisclaimer(tcs[0]) 21 accountID := getPrimaryAccountID(tcs[0]) 22 23 idUI := &kbtest.FakeIdentifyUI{} 24 arg := keybase1.Identify2Arg{ 25 UserAssertion: tcs[0].Fu.Username, 26 AlwaysBlock: true, 27 IdentifyBehavior: keybase1.TLFIdentifyBehavior_CLI, 28 } 29 30 // Run identify as user 1. 31 tc := tcs[1] 32 33 uis := libkb.UIs{ 34 LogUI: tc.G.UI.GetLogUI(), 35 IdentifyUI: idUI, 36 } 37 38 eng := engine.NewResolveThenIdentify2(tc.G, &arg) 39 m := libkb.NewMetaContextForTest(tc.TestContext).WithUIs(uis) 40 err := engine.RunEngine2(m, eng) 41 require.NoError(t, err) 42 res, err := eng.Result(m) 43 require.NoError(t, err) 44 45 // Check if Stellar account ID ended up in UPK 46 require.NotNil(t, res.Upk.Current.StellarAccountID) 47 require.Equal(t, accountID.String(), *res.Upk.Current.StellarAccountID) 48 49 // Check that it went through identify UI. 50 require.Len(t, idUI.StellarAccounts, 1) 51 acc0 := idUI.StellarAccounts[0] 52 t.Logf("Got StellarAccount in identify ui: %+v", acc0) 53 require.Equal(t, accountID.String(), acc0.AccountID) 54 require.Equal(t, fmt.Sprintf("%s*keybase.io", tcs[0].Fu.Username), acc0.FederationAddress) 55 require.NotEmpty(t, acc0.SigID) 56 }