github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/engine/prove_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  	"testing"
     8  
     9  	"github.com/keybase/client/go/libkb"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestProveRooter(t *testing.T) {
    14  	doWithSigChainVersions(func(sigVersion libkb.SigVersion) {
    15  		_testProveRooter(t, sigVersion)
    16  	})
    17  }
    18  
    19  func _testProveRooter(t *testing.T, sigVersion libkb.SigVersion) {
    20  	tc := SetupEngineTest(t, "prove")
    21  	defer tc.Cleanup()
    22  
    23  	fu := CreateAndSignupFakeUser(tc, "prove")
    24  
    25  	proveUI, _, err := proveRooter(tc.G, fu, sigVersion)
    26  	require.NoError(t, err)
    27  
    28  	require.False(t, proveUI.overwrite)
    29  	require.False(t, proveUI.warning)
    30  	require.False(t, proveUI.recheck)
    31  	require.True(t, proveUI.checked)
    32  }
    33  
    34  // Make sure the prove engine uses the secret store.
    35  func TestProveRooterWithSecretStore(t *testing.T) {
    36  	doWithSigChainVersions(func(sigVersion libkb.SigVersion) {
    37  		_testProveRooterWithSecretStore(t, sigVersion)
    38  	})
    39  }
    40  
    41  func _testProveRooterWithSecretStore(t *testing.T, sigVersion libkb.SigVersion) {
    42  	testEngineWithSecretStore(t, func(
    43  		tc libkb.TestContext, fu *FakeUser, secretUI libkb.SecretUI) {
    44  		_, _, err := proveRooterWithSecretUI(tc.G, fu, secretUI, sigVersion)
    45  		require.NoError(t, err)
    46  	})
    47  }
    48  
    49  // When device keys are cached, proofs shouldn't require passphrase prompt.
    50  func TestProveRooterCachedKeys(t *testing.T) {
    51  	tc := SetupEngineTest(t, "prove")
    52  	defer tc.Cleanup()
    53  	sigVersion := libkb.GetDefaultSigVersion(tc.G)
    54  
    55  	fu := CreateAndSignupFakeUser(tc, "prove")
    56  	clearCaches(tc.G)
    57  
    58  	_, _, err := proveRooterWithSecretUI(tc.G, fu, &libkb.TestSecretUI{}, sigVersion)
    59  	require.NoError(t, err)
    60  }
    61  
    62  func TestProveGenericSocial(t *testing.T) {
    63  	tc := SetupEngineTest(t, "prove")
    64  	defer tc.Cleanup()
    65  	sigVersion := libkb.KeybaseSignatureV2
    66  
    67  	fu := CreateAndSignupFakeUser(tc, "prove")
    68  	proveGubbleSocial(tc, fu, sigVersion)
    69  	proveGubbleCloud(tc, fu, sigVersion)
    70  }