You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
memos/store/test
boojack 26f4b73cb9 feat(filter): standard CEL now variable, time accessors, set ops
Replace the custom now() function with an idiomatic `now` timestamp variable (host-injected, frozen once per compile) and retype created_ts/updated_ts/create_time to CEL timestamp. Filters now use standard timestamp/duration arithmetic, e.g. `created_ts >= now - duration("24h")` and `timestamp("2025-01-01T00:00:00Z")`.

Add standard CEL surface that compiles to SQL across SQLite/MySQL/Postgres: timestamp accessors (getFullYear/getMonth/getDate/getDayOfWeek/..., with 0-based month and weekday normalized), ext.Sets() (sets.contains/intersects/equivalent over tags), tags.exists_one(), size() on string fields, and division/modulo folding. A frozen clock is injectable for deterministic tests.

BREAKING CHANGE: now() is removed (use the `now` variable) and time fields are timestamps, so bare-epoch comparisons need timestamp(<epoch>). Existing saved shortcuts using the old syntax must be updated.
2 weeks ago
..
README.md chore: move store test 1 year ago
attachment_filter_test.go feat(filter): standard CEL now variable, time accessors, set ops 2 weeks ago
attachment_test.go fix: delete user cleanup (#5981) 1 month ago
containers.go test: stabilize backend tests in CI 2 months ago
database_size_test.go feat(stats): admin instance resource statistics 2 months ago
filter_helpers_test.go feat(filter): standard CEL now variable, time accessors, set ops 2 weeks ago
idp_test.go feat: replace auto-increment ID with UID for identity provider resource names (#5687) 4 months ago
inbox_test.go refactor(inbox): store memo comment payloads without activity records (#5741) 4 months ago
instance_setting_test.go feat(ai): add BYOK audio transcription (#5832) 3 months ago
main_test.go fix: resolve flaky migration tests and add stable upgrade test (#5514) 6 months ago
memo_filter_functions_test.go feat(filter): standard CEL now variable, time accessors, set ops 2 weeks ago
memo_filter_test.go feat(filter): standard CEL now variable, time accessors, set ops 2 weeks ago
memo_relation_test.go perf: batch load memo relations when listing memos (#5692) 4 months ago
memo_test.go test(store): add tests for CreateMemo with custom timestamps 4 months ago
migrator_test.go feat(settings): move tag metadata to user settings (#6017) 1 month ago
migrator_upgrade_test.go test: stabilize backend tests in CI 2 months ago
reaction_test.go perf: enable parallel execution for all store tests 6 months ago
store.go refactor: migrate HOST roles to ADMIN 6 months ago
user_delete_test.go fix: delete user cleanup (#5981) 1 month ago
user_identity_test.go feat(auth): add SSO user identity linkage (#5883) 3 months ago
user_setting_test.go feat(instance): add canonical tag metadata setting (#5736) 4 months ago
user_test.go fix: delete user cleanup (#5981) 1 month ago

README.md

Store tests

How to test store with MySQL?

  1. Create a database in your MySQL server.
  2. Run the following command with two environment variables set:
DRIVER=mysql DSN=root@/memos_test go test -v ./test/store/...
  • DRIVER should be set to mysql.
  • DSN should be set to the DSN of your MySQL server.