mirror of
https://github.com/ddworken/hishtory.git
synced 2024-12-25 00:09:02 +01:00
Better tests for the update flow
This commit is contained in:
parent
945cf8cea3
commit
31288fb361
@ -453,6 +453,9 @@ func TestUpdate(t *testing.T) {
|
|||||||
defer shared.BackupAndRestore(t)()
|
defer shared.BackupAndRestore(t)()
|
||||||
userSecret := installHishtory(t, "")
|
userSecret := installHishtory(t, "")
|
||||||
|
|
||||||
|
// Record a command before the update
|
||||||
|
RunInteractiveBashCommands(t, "echo hello")
|
||||||
|
|
||||||
// Check the status command
|
// Check the status command
|
||||||
out := RunInteractiveBashCommands(t, `hishtory status`)
|
out := RunInteractiveBashCommands(t, `hishtory status`)
|
||||||
if out != fmt.Sprintf("Hishtory: v0.Unknown\nEnabled: true\nSecret Key: %s\nCommit Hash: Unknown\n", userSecret) {
|
if out != fmt.Sprintf("Hishtory: v0.Unknown\nEnabled: true\nSecret Key: %s\nCommit Hash: Unknown\n", userSecret) {
|
||||||
@ -460,8 +463,20 @@ func TestUpdate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
RunInteractiveBashCommands(t, `hishtory update`)
|
out = RunInteractiveBashCommands(t, `hishtory update`)
|
||||||
// TODO: assert on the output of ^
|
isExpected, err := regexp.MatchString(`Verified against tlog entry \d+\nSuccessfully updated hishtory from v0[.]Unknown to v0.\d+\n`, out)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("regex failure: %v", err)
|
||||||
|
}
|
||||||
|
if !isExpected {
|
||||||
|
t.Fatalf("hishtory update returned unexpected out=%#v", out)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update again and assert that it skipped the update
|
||||||
|
out = RunInteractiveBashCommands(t, `hishtory update`)
|
||||||
|
if strings.Count(out, "\n") != 1 || !strings.Contains(out, "is already installed") {
|
||||||
|
t.Fatalf("repeated hishtory update didn't skip the update, out=%#v", out)
|
||||||
|
}
|
||||||
|
|
||||||
// Then check the status command again to confirm the update worked
|
// Then check the status command again to confirm the update worked
|
||||||
out = RunInteractiveBashCommands(t, `hishtory status`)
|
out = RunInteractiveBashCommands(t, `hishtory status`)
|
||||||
@ -471,6 +486,13 @@ func TestUpdate(t *testing.T) {
|
|||||||
if strings.Contains(out, "\nCommit Hash: Unknown\n") {
|
if strings.Contains(out, "\nCommit Hash: Unknown\n") {
|
||||||
t.Fatalf("status command has unexpected output: %#v", out)
|
t.Fatalf("status command has unexpected output: %#v", out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check that the history was preserved after the update
|
||||||
|
out = RunInteractiveBashCommands(t, "hishtory export")
|
||||||
|
expectedOutput := "set -emo pipefail\necho hello\nset -emo pipefail\nhishtory status\nset -emo pipefail\nhishtory update\nset -emo pipefail\nhishtory update\nset -emo pipefail\nhishtory status\nset -emo pipefail\n"
|
||||||
|
if diff := cmp.Diff(expectedOutput, out); diff != "" {
|
||||||
|
t.Fatalf("hishtory export mismatch (-expected +got):\n%s\nout=%#v", diff, out)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRepeatedCommandThenQuery(t *testing.T) {
|
func TestRepeatedCommandThenQuery(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user