lockbox

password manager
Log | Files | Refs | README | LICENSE

commit 50fb7fae59e0113ef5a484ee4ecc4dcbe7dda246
parent f751acbc9a508fac909f97460029065008db63c3
Author: Sean Enck <sean@ttypty.com>
Date:   Tue, 13 Jan 2026 16:25:36 -0500

'conv' should not include this comma (check json output)

Diffstat:
Mcmd/lb/tests/expected.log | 22+++++++++++-----------
Minternal/app/conv.go | 2+-
Minternal/app/json_test.go | 5+++++
3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/cmd/lb/tests/expected.log b/cmd/lb/tests/expected.log @@ -185,47 +185,47 @@ algorithm: SHA1 period: 30 5ae472abqdekjqykoyxk7hvc2leklq5n "test1/key1": { - "checksum": "[00 00 00 00 cd 5p]", + "checksum": "[00 00 00 00 cd 5p]" "modtime": "XXXX-XX-XX", } "test10/key1": { - "checksum": "[00 00 00 00 cd bo]", + "checksum": "[00 00 00 00 cd bo]" "modtime": "XXXX-XX-XX", } "test4/multiline": { - "checksum": "[00 00 00 00 dd fn]", + "checksum": "[00 00 00 00 dd fn]" "modtime": "XXXX-XX-XX", } "test5/multiline": { - "checksum": "[00 00 00 00 cd fn]", + "checksum": "[00 00 00 00 cd fn]" "modtime": "XXXX-XX-XX", } "test6/multiline": { - "checksum": "[00 00 2d cn bo cp]", + "checksum": "[00 00 2d cn bo cp]" "modtime": "XXXX-XX-XX", } "test7/deeper/root": { - "checksum": "[00 00 00 00 7d cu]", + "checksum": "[00 00 00 00 7d cu]" "modtime": "XXXX-XX-XX", } "test7/deeper/rooted": { - "checksum": "[00 00 00 3d cn 3o]", + "checksum": "[00 00 00 3d cn 3o]" "modtime": "XXXX-XX-XX", } "test8/unset": { - "checksum": "[00 00 00 2d cn cp]", + "checksum": "[00 00 00 2d cn cp]" "modtime": "XXXX-XX-XX", } "test9/key1/sub1": { - "checksum": "[00 00 00 00 4d cp]", + "checksum": "[00 00 00 00 4d cp]" "modtime": "XXXX-XX-XX", } "test9/key1/sub2": { - "checksum": "[00 00 00 00 7d cp]", + "checksum": "[00 00 00 00 7d cp]" "modtime": "XXXX-XX-XX", } "test9/key2/sub1": { - "checksum": "[00 00 00 00 fd cp]", + "checksum": "[00 00 00 00 fd cp]" "modtime": "XXXX-XX-XX", } removing diff --git a/internal/app/conv.go b/internal/app/conv.go @@ -75,7 +75,7 @@ func serialize(w io.Writer, tx *kdbx.Transaction, isJSON bool, filter string) er if strings.TrimSpace(line) == "" { continue } - fmt.Fprintf(w, "%s\n", strings.TrimPrefix(line, " ")) + fmt.Fprintf(w, "%s\n", strings.TrimSuffix(strings.TrimPrefix(line, " "), ",")) } } printed = true diff --git a/internal/app/json_test.go b/internal/app/json_test.go @@ -2,6 +2,7 @@ package app_test import ( "bytes" + "encoding/json" "testing" "github.com/enckse/lockbox/internal/app" @@ -55,6 +56,10 @@ func TestJSON(t *testing.T) { if m.buf.String() == "" || m.buf.String() == "{}\n" { t.Error("no data") } + var check any + if err := json.Unmarshal(m.buf.Bytes(), &check); err != nil { + t.Errorf("invalid json: %v", err) + } m.buf = bytes.Buffer{} m.args = []string{"tsest/test2/test1"} if err := app.JSON(m); err != nil {