github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/engine/scankeys_test.go (about) 1 // Copyright 2015 Keybase, Inc. All rights reserved. Use of 2 // this source code is governed by the included BSD license. 3 4 package engine 5 6 import ( 7 "github.com/keybase/client/go/libkb" 8 keybase1 "github.com/keybase/client/go/protocol/keybase1" 9 "github.com/stretchr/testify/require" 10 "testing" 11 ) 12 13 func TestScanKeys(t *testing.T) { 14 tc := SetupEngineTest(t, "ScanKeys") 15 defer tc.Cleanup() 16 17 fu := CreateAndSignupFakeUser(tc, "login") 18 m := NewMetaContextForTest(tc).WithSecretUI(fu.NewSecretUI()) 19 20 sk, err := NewScanKeys(m) 21 if err != nil { 22 t.Fatal(err) 23 } 24 25 if sk.Count() != 0 { 26 t.Errorf("scankey count: %d, expected 0", sk.Count()) 27 } 28 } 29 30 // TestScanKeysSync checks a user with a synced PGP key 31 func TestScanKeysSync(t *testing.T) { 32 tc := SetupEngineTest(t, "PGPDecrypt") 33 defer tc.Cleanup() 34 35 // First setup a user with a synced PGP private key 36 fu := createFakeUserWithPGPOnly(t, tc) 37 uis := libkb.UIs{ 38 ProvisionUI: newTestProvisionUIPassphrase(), 39 LoginUI: &libkb.TestLoginUI{Username: fu.Username}, 40 LogUI: tc.G.UI.GetLogUI(), 41 SecretUI: fu.NewSecretUI(), 42 GPGUI: &gpgtestui{}, 43 } 44 45 // Now provision a full device. 46 m := NewMetaContextForTest(tc).WithUIs(uis) 47 eng := NewLogin(tc.G, keybase1.DeviceTypeV2_DESKTOP, "", keybase1.ClientType_CLI) 48 err := RunEngine2(m, eng) 49 require.NoError(t, err, "provisioning worked") 50 51 // Now scankeys should work without any additional secrets. 52 m = m.WithUIs(libkb.UIs{}) 53 sk, err := NewScanKeys(m) 54 require.NoError(t, err, "scanning keys worked") 55 56 if sk.Count() != 1 { 57 t.Errorf("scankey count: %d, expected 1", sk.Count()) 58 } 59 }