Commit Graph

336 Commits

Author SHA1 Message Date
David Dworken
6dea8a989e
Add config option to filter out duplicate history entries as requested in #10 2022-11-03 20:36:36 -07:00
David Dworken
185d2739c7
Add offline mode for hiSHtory 2022-11-03 13:16:45 -07:00
David Dworken
17ae676da0
Add uninstall command + tests for uninstall 2022-11-02 19:41:49 -07:00
David Dworken
f69460422a
Add test for smaller terminal 2022-11-02 18:50:27 -07:00
David Dworken
5554720451
Another attempt at fixing action tests 2022-11-01 12:00:40 -07:00
David Dworken
24b342716e
Take into account shell differences 2022-11-01 11:08:16 -07:00
David Dworken
2efa93762a
Another attempt at getting github actions to pass 2022-11-01 11:03:49 -07:00
David Dworken
add3693967
Add more tests to testIntegrationWithNewDevice 2022-11-01 10:45:16 -07:00
David Dworken
acef5c0879
Make TestFish pass on github actions 2022-11-01 10:37:01 -07:00
David Dworken
c70134a6fb Add more verbose output for golden failures 2022-10-31 21:16:15 -07:00
David Dworken
cdd7f60f0c Test table display for fish too 2022-10-30 18:40:25 -07:00
David Dworken
de99d60f7c Refactor fish tests to use the existing API 2022-10-30 18:01:53 -07:00
David Dworken
0e70347c0d Add a more complex test for custom columns 2022-10-30 17:55:48 -07:00
David Dworken
7d924409fb Try re-enabling a test on github actions to see if it still fails 2022-10-30 16:33:09 -07:00
David Dworken
6ad60f4e58 Move up the hishtory disable so as to avoid recording the query 2022-10-29 18:34:16 -07:00
David Dworken
51096276b6 Better error message for goldens 2022-10-29 17:55:37 -07:00
David Dworken
0f9e77223e Chdir so that we have a consistent cwd for github actions 2022-10-29 17:53:40 -07:00
David Dworken
189f183d69 Normalize hostnames to attempt to get tests to pass in github actions 2022-10-27 23:30:09 -07:00
David Dworken
267aa086fa Add tests for configuring displayed-columns 2022-10-27 23:07:00 -07:00
David Dworken
8b575e98c6 Add a test for custom columns for the classic non-TUI interface 2022-10-27 22:31:59 -07:00
David Dworken
7cfd03ccfe Clean up string trimming code 2022-10-27 22:28:43 -07:00
David Dworken
9ef3b7890c Add a basic test for defining a custom column 2022-10-27 22:20:53 -07:00
David Dworken
d3c631b191 Add control-r tests for changing the displayed columns 2022-10-27 22:11:57 -07:00
David Dworken
0fbf7178c3 Add an advanced search test for control-r 2022-10-27 22:07:11 -07:00
David Dworken
043e815716 Add a test for multi-line history entries 2022-10-27 22:02:19 -07:00
David Dworken
f9098d87d5 Another custom column test 2022-10-27 21:58:39 -07:00
David Dworken
dc5fd19c9e Add another test for custom columns 2022-10-27 21:57:09 -07:00
David Dworken
cdc5421a7b Move testutils to a separate package so as to move test-only code out of the main binary 2022-10-27 21:53:47 -07:00
David Dworken
bed19f5316 Basic test for custom columns 2022-10-27 21:28:37 -07:00
David Dworken
fb258627df Migrate to using golden files for tests + get all existing tests passing again 2022-10-27 21:20:33 -07:00
David Dworken
51b41aa171 Add custom columns to config + use them in the non-TUI query 2022-10-23 20:54:46 -07:00
David Dworken
ebf8de2b1f Refactor to enable control-r by default on upgrade + pave the way for prompts in the future 2022-10-23 19:29:29 -07:00
David Dworken
13cfbbc3b7 Move up the skip because tests are still failing 2022-10-23 17:37:33 -07:00
David Dworken
41586ba034 Remove the dedicated test shell scripts and instead auto-generate them 2022-10-23 17:35:02 -07:00
David Dworken
253f2fdc27 Enable control-r binding for new installs + prompt upgrades on whether they want to enable control-r bindings 2022-10-23 16:51:39 -07:00
David Dworken
467fd68ddb Try re-enabling fish tests on actions 2022-10-23 16:04:17 -07:00
David Dworken
9614522c6d Just skip the really weird bash failure on macos 2022-10-23 16:03:26 -07:00
David Dworken
d5893f0cfa Support not recording empty commands in fish + add tests for this 2022-10-23 15:45:50 -07:00
David Dworken
aa3f449885 Skip recording empty history commands 2022-10-23 15:40:30 -07:00
David Dworken
4c986d8a45 Add sleep 1 after shell startup to give macos time to verify the binary 2022-10-23 14:58:47 -07:00
David Dworken
17e98f0366 Bump timeout for linux since linux appears to be a bit slower 2022-10-23 00:58:08 -07:00
David Dworken
4060f2d71d Add tests for disabling control-r 2022-10-23 00:53:47 -07:00
David Dworken
ac808777d6 Fix debug info for hishtory timeout issue 2022-10-23 00:46:56 -07:00
David Dworken
907da9bf47 More debugging info for the time out in zsh background saving tests 2022-10-23 00:20:47 -07:00
David Dworken
d3b5ddc11d Bump the hishtory time out in case that helps fix the background saving test 2022-10-23 00:04:25 -07:00
David Dworken
9bdb1ed4ed Add debug code for a github actions only test failure 2022-10-22 23:54:35 -07:00
David Dworken
dbccaebf85 control-r tests for fish with a search atom 2022-10-22 11:58:59 -07:00
David Dworken
1c561f5cc8 Initial attempt at fixing the timezone bug that prevents tquery tests from running on actions 2022-10-22 11:45:04 -07:00
David Dworken
97742cf0eb Add control-r tests for fish 2022-10-22 11:42:37 -07:00
David Dworken
cbb6a676be More tquery searching tests 2022-10-22 00:50:34 -07:00
David Dworken
8c88bfe2f1 Skip TestFish on linux actions since it is weirdly failing 2022-10-22 00:36:57 -07:00
David Dworken
2c5a46565c Add control-r tests for searching with simple queries 2022-10-22 00:34:19 -07:00
David Dworken
865fa879fe Add control-r tests for selecting and executing a command 2022-10-22 00:27:53 -07:00
David Dworken
848c89ebc8 Make control-r tests pass for bash + refactor to use a small utility function for tmux tests 2022-10-22 00:17:21 -07:00
David Dworken
b8039e6d8a Add test for fish recording background commands + remove todo 2022-10-21 23:26:41 -07:00
David Dworken
70f5d668de Run TestFish with bash to see whether that fixes the obscure zsh error 2022-10-21 23:16:27 -07:00
David Dworken
204ce10619 Make the TestTui function always use zsh since the TUI has nothing to do with shell support 2022-10-21 00:16:25 -07:00
David Dworken
c978ee9a2e Enable control-r in tests + basic test for control-r in zsh 2022-10-21 00:14:28 -07:00
David Dworken
8a32ddef5a Add test checking that hishtory records commands run in the background (it does, but this is currently broken in fish) 2022-10-19 21:33:31 -07:00
David Dworken
9d5eb73c76 brew install fish in actions + don't hardcode the fish path 2022-10-19 21:27:03 -07:00
David Dworken
54679dc2db Test fish omitting certain commands 2022-10-19 18:01:16 -07:00
David Dworken
762e9a6e0a Add basic test for fish recoridng history commands 2022-10-18 21:00:30 -07:00
David Dworken
abe231f5b0 Initial non-unit tested version of fish support 2022-10-18 19:55:41 -07:00
David Dworken
b31d35685c More tui tests + re-enable them for non-action runs 2022-10-18 15:07:56 -07:00
David Dworken
c7651179cf Skip the tui test since it is still flaky 2022-10-18 14:51:54 -07:00
David Dworken
40d6d7daa5 Add a very basic test for the tui 2022-10-17 21:58:56 -07:00
David Dworken
5a943c20f1 Initial working version of control-r search 2022-10-16 12:43:16 -07:00
David Dworken
a66e473bb8 Fix bug in client_test that made me not realize that there was a bug in the install process 2022-10-16 09:56:14 -07:00
David Dworken
abb0684140 Swap to a forked version of rodaine/table that supports multi-line table entries
So now when zsh has a history entry with multiple lines, it will display correctly like so:

Hostname                  CWD              Timestamp                 Runtime  Exit Code  Command
Davids-MacBook-Air.local  ~/code/hishtory  Oct 14 2022 23:06:06 PDT  1.621s   1          while :; do ls; done
Davids-MacBook-Air.local  ~/code/hishtory  Oct 14 2022 23:04:24 PDT  22.768s  130        hishtory query while
Davids-MacBook-Air.local  ~/code/hishtory  Oct 14 2022 23:04:24 PDT  1.258s   0          hishtory query while
Davids-MacBook-Air.local  ~/code/hishtory  Oct 14 2022 23:04:19 PDT  2.065s   0          while :
                                                                                         do
                                                                                         ls
                                                                                         done
Davids-MacBook-Air.local  ~/code/hishtory  Oct 14 2022 23:03:18 PDT  628ms    0          ./hishtory query while
Davids-MacBook-Air.local  ~/code/hishtory  Oct 14 2022 23:03:15 PDT  717ms    0          hishtory query while
2022-10-15 09:29:47 -07:00
David Dworken
8e6a55237c Try running all tests in github actions with a longer timeout 2022-10-09 19:04:03 -07:00
David Dworken
52c3b13cb6 Add reupload command + include source_device_id query param when submitting entries 2022-10-09 12:13:05 -07:00
David Dworken
757ebb9547 Prompt people if they run hishtory init and already have a bunch of entries + fix tests + add TODOs + add hishtory version to requests 2022-10-01 09:50:06 -07:00
David Dworken
4f94698ca6 Fix bug in tests that made tests fail if the date is between the first and the ninth 2022-09-30 23:56:04 -07:00
David Dworken
6cd7fa00fc Have hishtory import also read from stdin 2022-09-30 23:50:25 -07:00
David Dworken
2bdfe3d64f Add FAST=1 env that can be used to run just some fast tests for quick testing 2022-09-27 22:03:37 -07:00
David Dworken
23d85c81e5 Shorten test runtime for macos tests on github actions 2022-09-27 20:57:13 -07:00
David Dworken
dddee9eeff Fix hishtory status tests + optimize switchToDevice() function 2022-09-26 22:55:59 -07:00
David Dworken
616d87399f Fix broken help command test 2022-09-24 16:18:24 -07:00
David Dworken
90c4acefd3 Add more fuzz tests with redaction 2022-09-24 16:00:03 -07:00
David Dworken
ff6e42794c Remove TODO, a couple more fuzz tests 2022-09-22 23:25:06 -07:00
David Dworken
1df50731be Run the fuzz test with bash and zsh 2022-09-22 23:12:41 -07:00
David Dworken
4e4caef10f Add initial implementation of fuzz testing that fuzzes multiple devices and multiple users 2022-09-22 23:06:28 -07:00
David Dworken
c18c2502cc Add a complex test with many users 2022-09-22 21:45:20 -07:00
David Dworken
c6d4f1ef68 Fix missing newline in zshrc, add test for hishtory redact prompting, and tag TODOs with plans 2022-09-22 18:22:06 -07:00
David Dworken
ee6680f571 Remove debugging information and give up on that test, and add work around for weird zsh bug with importing 2022-09-22 18:09:51 -07:00
David Dworken
99b51a356e Add debugging information for macos tests 2022-09-21 21:49:08 -07:00
David Dworken
133463ef96 Disable CGO in one more place (plus add a todo) 2022-09-21 20:30:50 -07:00
David Dworken
569e2f3e61 Add tests for offline behavior 2022-09-21 20:09:49 -07:00
David Dworken
4fceaa3110 Run tests without CGO since that is how prod is built + fix broken tests from previous commit 2022-09-21 19:58:10 -07:00
David Dworken
1abd2a5376 Fix table format tests 2022-09-20 23:46:17 -07:00
David Dworken
ceb1becfa6 Fix ctx wiring so installs work properly 2022-09-20 23:30:57 -07:00
David Dworken
694c2e2679 Untested: ctx wired through 2022-09-20 22:28:40 -07:00
David Dworken
e47bcfc993 Part way through migrating to context 2022-09-20 22:03:15 -07:00
David Dworken
42c6f95eb4 Remove time.Sleep that was working around an old already fixed bug 2022-09-20 21:38:04 -07:00
David Dworken
5391ecd220 First version of working redaction with passing integration tests 2022-09-19 22:49:48 -07:00
David Dworken
a445118e91 Remove outdated TODO 2022-09-17 23:05:50 -07:00
David Dworken
af0d20952f Remove the last bit of GITHUB_ACTION dependent code 2022-09-17 22:50:01 -07:00
David Dworken
55f0f97d29 Fix tests for importing so they pass on github actions 2022-09-17 21:56:39 -07:00
David Dworken
d4302501eb Improve table matching for tests and attempt to fix the tests that fail only on github actions 2022-09-17 12:49:27 -07:00
David Dworken
5b1c9140b3 Support runtimes that contain a period 2022-09-17 12:37:02 -07:00
David Dworken
6093d06110 Remove outdated TODO + fix TODO to add tests for the table output 2022-09-17 12:19:29 -07:00
David Dworken
bad123a3dd Add tests for history importing and add output showing the number of imported entries 2022-09-17 11:49:31 -07:00
David Dworken
d54bece705 Add HomeDirectory to HistoryEntry so we can query with or without ~/ in the cwd atom 2022-09-07 23:20:31 -07:00
David Dworken
aef13b16d0 Offline first! Now if a devide is offline it will detect this and upload the entries later 2022-09-04 18:37:46 -07:00
David Dworken
e8f001c78b Add basic support for stripping out HISTTIMEFORMAT prefixes 2022-06-12 21:28:19 -07:00
David Dworken
3f32891469 Revert "Half implement querying based on relative and non-relative paths"
This reverts commit af05d823fe. I will pick up work on this later.
2022-06-12 20:28:40 -07:00
David Dworken
af05d823fe Half implement querying based on relative and non-relative paths 2022-06-12 20:28:33 -07:00
David Dworken
ad7e412855 Add help command 2022-06-05 18:26:02 -07:00
David Dworken
5e44e7ef36 Support queries as part of the export command + more info sent to the banner endpoint 2022-06-05 18:05:06 -07:00
David Dworken
b471eea2ee Enable 'strict' mode for zsh 2022-06-04 23:11:26 -07:00
David Dworken
0fac3b7286 Make query params required rather than having weird undefined behavior 2022-06-04 23:03:05 -07:00
David Dworken
84182ba5c3 Delete TODO for a test that I don't think is needed 2022-06-04 22:30:20 -07:00
David Dworken
00f6bed62c Add a test for the install.py script 2022-06-04 22:27:04 -07:00
David Dworken
c918c5042e Fix test on incorrect update output + prevent downgrades 2022-06-04 21:42:40 -07:00
David Dworken
0a31e8a787 Skip flaky test in github actions 2022-05-27 23:00:10 -07:00
David Dworken
47d13a9c27 Passing the basic dump testss 2022-05-22 19:45:46 -07:00
David Dworken
feaa8b2bd1 Add a DB dump test that passes on zsh (is failing for an unknown reason on bash currently) + fix backup and restore for WAL files + better offline support 2022-05-01 22:37:26 -04:00
David Dworken
46d7e9e013 Tests passing when being run offline, still not integrated with the new API endpoints yet 2022-04-28 11:26:55 -07:00
David Dworken
87c8c961e9 Delete already done todo 2022-04-28 10:01:58 -07:00
David Dworken
980d299543 Run the command in the background for zsh 2022-04-21 22:25:24 -07:00
David Dworken
6a18504755 Enable WAL for increased concurrency, and add additional expectedOutput option for testDisplayTable 2022-04-20 22:13:10 -07:00
David Dworken
94c88c76fe Skip testUpdate when running on linux/arm64 since that isn't a supported platform 2022-04-20 20:56:01 -07:00
David Dworken
10ee085d4c Remove unnecessary set -m calls, speed up the local make acttest command, embed ReleaseVersion into the test server to fix the test failures on macos, and update install to be resistant to bashrc and zshrc not existing 2022-04-19 21:05:54 -07:00
David Dworken
0c0943fc79 Fix failing test + fix syntax error in workflow 2022-04-19 19:21:39 -07:00
David Dworken
62c29dc68c Enable some previously disabled tests that I think should now pass on macos 2022-04-18 23:07:39 -07:00
David Dworken
d6a142dfe7 Fix failing lib_test + add test for displaying the correct cwd in the table 2022-04-18 22:45:07 -07:00
David Dworken
38b91f933c Add a timestamp test that I believe will fail for macos 2022-04-18 22:07:10 -07:00
David Dworken
1cc36fa0ef Add todo, extra debugging output for failing mac test, and a check on resp.StatusCode 2022-04-18 21:28:41 -07:00
David Dworken
97f5368954 Remove set -m from test that breaks it for zsh 2022-04-17 23:31:08 -07:00
David Dworken
720fd7ee68 Re-enable update tests 2022-04-17 23:23:47 -07:00
David Dworken
16055f982e Skip commands prefixed with a space for zsh + update tests + touch ~/.zshrc so tests can run on actions 2022-04-17 21:04:44 -07:00
David Dworken
aae18d44b9 Working basic zsh integration (with lots of failing tests that are currently getting skipped) 2022-04-17 19:54:17 -07:00
David Dworken
5d9950d0a9 Fix goarch for m1 + fix boolean conditions 2022-04-17 11:51:29 -07:00
David Dworken
cf54d4b416 Skip failing test on macos actions 2022-04-17 11:37:23 -07:00
David Dworken
824c1853c1 Fix tests failing on Github actions 2022-04-17 11:24:55 -07:00
David Dworken
31288fb361 Better tests for the update flow 2022-04-16 23:00:04 -07:00
David Dworken
158f08f5c6 Improved update flow
Using the previously added new API endpoint, the update flow can now skip updates if the latest version is already installed. This also improves the output by making it so update can print the version. Also improved the error handling.
2022-04-16 20:50:02 -07:00
David Dworken
def83d6b0e Add verbose flag for the status subcommand 2022-04-16 10:46:57 -07:00
David Dworken
62a83b76b1 Add a test for displaying a table 2022-04-16 01:09:25 -07:00
David Dworken
a9af51f5b2 Improved tests 2022-04-16 00:56:08 -07:00
David Dworken
c369661e53 More server-side logging + client-side logging 2022-04-16 00:44:47 -07:00
David Dworken
6df100ebbd Fix variable collision in tests 2022-04-15 22:54:38 -07:00
David Dworken
b9204bf649 add a test for a complex command getting recorded 2022-04-15 18:24:58 -07:00
David Dworken
5b59141c3a optimize test execution time by only building the client once + add Makefile target for action tests 2022-04-15 18:12:26 -07:00
David Dworken
682a063e95 making tests pass on actions by grepping out pipefail which is flakily recorded due to actions not recording line numbers 2022-04-15 18:06:48 -07:00
David Dworken
ab0d9d4c90 optimize test runtime by running a single server instance per-file rather than one per test 2022-04-15 11:20:23 -07:00
David Dworken
d1d78de0e4 whoops, inverted boolean condition so the test still failed 2022-04-15 00:17:02 -07:00
David Dworken
fd2a642374 Make the test pass on github actions 2022-04-15 00:10:22 -07:00
David Dworken
b09b725f49 Properly skip recording of commands prefixed with a space to match bash's history behavior 2022-04-15 00:04:49 -07:00
David Dworken
dc6fb6a47b Refactor tests to make them non-flakey and pass on actions
This required adding the ability to have hishtory run synchronously to avoid reconditions. I also added additional waiting code. Also a whole bunch of new tests and disabled gorm's default logger which also caued flakeyness
2022-04-14 20:18:49 -07:00
David Dworken
24db9d825e integration test running on actions 2022-04-13 21:48:52 -07:00
David Dworken
e854c8304f TestUpdate running in github actions 2022-04-13 21:34:18 -07:00
David Dworken
e2b5fd13bf tests passing inside act, hopefully on real actions 2022-04-13 21:30:27 -07:00
David Dworken
908257306e trying to make the test pass 2022-04-12 22:36:02 -07:00
David Dworken
6e52c10474 continuing to debug failures on actions 2022-04-12 21:24:25 -07:00
David Dworken
8ed2cea004 unclear why the install command isn't getting recorded on actions, but other ones are... 2022-04-12 00:02:14 -07:00
David Dworken
807933b548 Updated tests, and maybe they'll pass on actions 2022-04-11 23:48:51 -07:00
David Dworken
5325fc75ae Add negative conditions to search queries + tests + better error messages by including filename:line in error messages 2022-04-11 22:36:52 -07:00
David Dworken
970e5d75db add tests for user and hostname atoms + moved server tests to server_test.go 2022-04-10 17:38:20 -07:00
David Dworken
5c508e7cfc Fix broken test from version change 2022-04-09 14:48:17 -07:00
David Dworken
2bb06b568a Add version to binary 2022-04-09 14:37:21 -07:00
David Dworken
ac18b3d93e more tests + some todos where I could add even more 2022-04-09 13:09:46 -07:00
David Dworken
c52a7f4ae6 skip the update tests in actions 2022-04-09 12:53:34 -07:00
David Dworken
c8ba560e0c handle github api rate limit, tests for the update command, and fix timezone bug in tests 2022-04-09 12:50:01 -07:00
David Dworken
99794191dc whoops, had the test skipping logic in the wrong order 2022-04-09 12:31:31 -07:00
David Dworken
5496dc3a5e skip tests that fail on actions with a TODO 2022-04-09 12:27:24 -07:00
David Dworken
e9d19eb782 fix hardcoded username in tests + another attempt at enabling bash job control + test that building docker containers works 2022-04-09 12:19:01 -07:00
David Dworken
3619bd5447 explicitly enable bash job mode + don't call gvm cause it isn't necessary 2022-04-09 12:04:13 -07:00
David Dworken
9f20074a4f change tests to not hardcode the local path to source on my laptop 2022-04-09 11:55:00 -07:00
David Dworken
2a083b7d06 add code to auto-update the version tag in the server + tests 2022-04-08 23:47:13 -07:00
David Dworken
966f73757b moved client/client.go to hishtory.go to support slsa l3 border 2022-04-08 21:17:11 -07:00
David Dworken
39b9b15d53 implemented after and before atoms w/ tests for them 2022-04-08 18:23:17 -07:00
David Dworken
1adcaeb6cf added test for query that returns no results 2022-04-07 23:30:31 -07:00
David Dworken
b8240091cd added tests for exit_code: atom and also made tests actually run with bash strict mode 2022-04-07 23:25:13 -07:00
David Dworken
6d84402bce first bit of advanced query support 2022-04-07 22:53:39 -07:00
David Dworken
f2e6de2eb3 pre-commit + stricter formatting + pre-commit fixes 2022-04-07 21:40:22 -07:00
David Dworken
c2465d7c99 refactored to move no longer shared things out of the shared/ folder 2022-04-07 21:05:58 -07:00
David Dworken
a8d7ee2cc8 fix CSS + gofmt 2022-04-06 23:17:58 -07:00
David Dworken
581231d0ef fixed export, added tests for it, made tests more accurate, and excluded things from gitignore 2022-04-06 23:05:30 -07:00
David Dworken
7a6aece6dc more tests 2022-04-06 22:49:45 -07:00
David Dworken
c48c4dc83f formatted 2022-04-06 22:44:10 -07:00
David Dworken
1065fff062 refactoring, better tests, commit hash, banner, and tested working locally 2022-04-06 22:43:07 -07:00
David Dworken
684511f4f7 working update 2022-04-06 18:18:46 -07:00
David Dworken
7e51d5fe42 test for 3rd client, and status subcommand 2022-04-06 17:47:21 -07:00
David Dworken
71fc809f9a tests are passing and getting close now. Need to test the live update flow along with more thorough testing for everything 2022-04-05 23:31:24 -07:00
David Dworken
e2acc6612a well, it builds :D but still failing all the tests 2022-04-04 22:07:01 -07:00