mirror of
https://github.com/gopasspw/gopass.git
synced 2025-12-08 19:24:54 +00:00
* [CLEANUP] Moving options to the correct config section This adds an easy migration path to our config handling, which should allow us to migrate option names around much more easily in the future. Any system level config or env variables options are not migrated. This also fixes a bug in our test code, where the root mount path was not properly set in our config, because we used "path:" instead of "path=" to set it. Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [DOCUMENTATION] Document legacy options and their migration path This also makes sure that legacy options aren't used in the code anymore using the docs test and its regexp Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [n/a] Removing weird spaces from changelog Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [DOCUMENTATION] Reformatting our Markdown tables properly Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [TESTING] Patching a timezone bug in tests This is a fun one where if your Timezone isn't UTC and you are past midnight but it's not past midnight UTC, the tests would fail because you're not using the right date to validate it. Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [n/a] Fix a typo and use the correct Env variables in the doc about the custom Env variables Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [BREAKING] Custom Env options moved from GOPASS_CONFIG_CONFIG_KEY_i to GOPASS_CONFIG_KEY_i As discussed in #2617, this actually reflects the way GIT_CONFIG works. It also fixes a potential Panic in our codebase when IsSet was called without any Preset config on a non-existing key. Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [CLEANUP] Patching all of the new linter complaints Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [CLEANUP] Use Go1.21 everywhere Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [n/a] Increase our Golangci timeout Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> * [n/a] code review comment and extra regression test Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com> --------- Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>
155 lines
18 KiB
Go
155 lines
18 KiB
Go
package tests
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
var goldenQr = "\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[40m \x1b[0m\x1b[40m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\n\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m\x1b[47m \x1b[0m"
|
|
|
|
func TestShow(t *testing.T) {
|
|
ts := newTester(t)
|
|
defer ts.teardown()
|
|
|
|
_, err := ts.run("show")
|
|
require.Error(t, err)
|
|
|
|
ts.initStore()
|
|
|
|
t.Run("test usage", func(t *testing.T) {
|
|
out, err := ts.run("show")
|
|
require.Error(t, err)
|
|
assert.Equal(t, "\nError: Usage: "+filepath.Base(ts.Binary)+" show [name]\n", out)
|
|
})
|
|
|
|
t.Run("test show with non-existing secret", func(t *testing.T) {
|
|
out, err := ts.run("show foo")
|
|
require.Error(t, err)
|
|
assert.Contains(t, out, "entry is not in the password store", out)
|
|
})
|
|
|
|
ts.initSecrets("")
|
|
|
|
t.Run("show folder foo", func(t *testing.T) {
|
|
_, err = ts.run("show foo")
|
|
require.NoError(t, err)
|
|
_, err = ts.run("show -u foo")
|
|
require.NoError(t, err)
|
|
_, err = ts.run("show foo -unsafe")
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
t.Run("show w/o safecontent", func(t *testing.T) {
|
|
_, err = ts.run("config show.safecontent false")
|
|
require.NoError(t, err)
|
|
|
|
out, err := ts.run("show fixed/secret")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "moar", out)
|
|
|
|
out, err = ts.run("show fixed/twoliner")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "first line\nsecond line", out)
|
|
|
|
out, err = ts.run("show --qr fixed/secret")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, goldenQr, out)
|
|
})
|
|
|
|
t.Run("show w/o autoclip", func(t *testing.T) {
|
|
_, err = ts.run("config generate.autoclip false")
|
|
require.NoError(t, err)
|
|
_, err = ts.run("show fixed/secret")
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
t.Run("show with safecontent", func(t *testing.T) {
|
|
_, err = ts.run("config show.safecontent true")
|
|
require.NoError(t, err, "set show.safecontent = true")
|
|
|
|
out, err := ts.run("config show.safecontent")
|
|
require.NoError(t, err)
|
|
assert.Contains(t, out, "true", "verify show.safecontent = true")
|
|
|
|
out, err = ts.run("show fixed/secret")
|
|
require.Error(t, err)
|
|
assert.Contains(t, out, "safecontent", "output should contain a safecontent warning")
|
|
|
|
out, err = ts.run("show fixed/twoliner")
|
|
require.NoError(t, err)
|
|
assert.NotContains(t, out, "password: ***")
|
|
assert.Contains(t, out, "second line")
|
|
assert.NotContains(t, out, "first line", "safecontent = true should remove the first (password) line")
|
|
})
|
|
|
|
t.Run("force showing full secret", func(t *testing.T) {
|
|
_, err = ts.run("config show.safecontent true")
|
|
require.NoError(t, err)
|
|
|
|
out, err := ts.run("show -u fixed/secret")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "moar", out)
|
|
|
|
out, err = ts.run("show -o fixed/secret")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "moar", out)
|
|
|
|
out, err = ts.run("show -u fixed/twoliner")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "first line\nsecond line", out)
|
|
|
|
out, err = ts.run("show -o fixed/twoliner")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "first line", out)
|
|
|
|
out, err = ts.run("show -c fixed/twoliner")
|
|
require.NoError(t, err)
|
|
assert.NotContains(t, out, "***")
|
|
assert.NotContains(t, out, "safecontent=true")
|
|
assert.NotContains(t, out, "first line")
|
|
assert.NotContains(t, out, "second line")
|
|
|
|
out, err = ts.run("show -C fixed/twoliner")
|
|
require.NoError(t, err)
|
|
assert.Contains(t, out, "second line")
|
|
assert.NotContains(t, out, "first line")
|
|
})
|
|
|
|
t.Run("Regression test for #1574 and #1575", func(t *testing.T) {
|
|
t.Setenv("GOPASS_CHARACTER_SET", "a")
|
|
|
|
_, err = ts.run("config show.safecontent true")
|
|
require.NoError(t, err)
|
|
|
|
_, err := ts.run("generate fo2 5")
|
|
require.NoError(t, err)
|
|
|
|
out, err := ts.run("show fo2")
|
|
require.Error(t, err)
|
|
assert.NotContains(t, out, "password: *****")
|
|
assert.NotContains(t, out, "aaaaa")
|
|
assert.Contains(t, out, "safecontent=true")
|
|
|
|
out, err = ts.run("show -u fo2")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "aaaaa", out)
|
|
|
|
_, err = ts.run("generate fo6 5")
|
|
require.NoError(t, err)
|
|
|
|
out, err = ts.run("show fo6")
|
|
require.Error(t, err)
|
|
assert.NotContains(t, out, "password: ***")
|
|
assert.NotContains(t, out, "aaaaa")
|
|
assert.Contains(t, out, "safecontent=true")
|
|
|
|
out, err = ts.run("show -u fo6")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "aaaaa", out)
|
|
assert.NotContains(t, out, "\n\n")
|
|
})
|
|
}
|