aboutsummaryrefslogtreecommitdiff
path: root/cli_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'cli_test.go')
-rw-r--r--cli_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/cli_test.go b/cli_test.go
index ef6a07c..485cad5 100644
--- a/cli_test.go
+++ b/cli_test.go
@@ -10,6 +10,7 @@ import (
"io/fs"
"os"
"path/filepath"
+ "strings"
"testing"
"git.sr.ht/~shulhan/pakakeh.go/lib/test"
@@ -90,6 +91,37 @@ test = SHA1:x:6:30:
}
}
+func TestCli_Export(t *testing.T) {
+ var (
+ tdata *test.Data
+ err error
+ )
+
+ tdata, err = test.LoadData(`testdata/cli_Export_test.txt`)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ var cli = &Cli{
+ cfg: &config{
+ Issuers: map[string]string{
+ `test l@bel`: `SHA1:s3cr3t:6:30:IssuerName`,
+ },
+ },
+ }
+
+ var sb = strings.Builder{}
+
+ err = cli.Export(&sb, formatNameURI)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ var exp = string(tdata.Output[`uri`])
+
+ test.Assert(t, `Export: uri`, exp, sb.String())
+}
+
func TestCli_SetPrivateKey(t *testing.T) {
var (
tdata *test.Data
@@ -265,6 +297,10 @@ func TestCli_withPassphrase(t *testing.T) {
testAddWithPassphrase(t, tdata, cli)
})
+ t.Run(`Export`, func(t *testing.T) {
+ testExportWithPassphrase(t, tdata, cli)
+ })
+
t.Run(`Generate`, func(t *testing.T) {
testGenerateWithPassphrase(t, tdata, cli)
})
@@ -330,6 +366,24 @@ func testAddWithPassphrase(t *testing.T, tdata *test.Data, cli *Cli) {
mockTermrw.BufRead.Reset()
}
+func testExportWithPassphrase(t *testing.T, tdata *test.Data, cli *Cli) {
+ var pass = string(tdata.Input[`gotp.pass`]) + "\r\n"
+ mockTermrw.BufRead.WriteString(pass)
+
+ t.Cleanup(mockTermrw.BufRead.Reset)
+
+ var got = strings.Builder{}
+
+ var err = cli.Export(&got, formatNameURI)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ var exp = string(tdata.Output[`gotp.conf:export`])
+
+ test.Assert(t, `testExportWithPassphrase`, exp, got.String())
+}
+
func testGenerateWithPassphrase(t *testing.T, tdata *test.Data, cli *Cli) {
type testCase struct {
label string