Commit graph

36 commits

Author SHA1 Message Date
renovate[bot]
4acb0073f6
Update actions/cache action to v6 (#638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-23 16:36:06 -07:00
renovate[bot]
72f47d6df7
Update actions/checkout action to v7 (#634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-22 14:15:41 -07:00
renovate[bot]
d9d4eb70b3
Update codecov/codecov-action action to v7 (#567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-14 01:34:22 -07:00
renovate[bot]
0341c7e087
Update actions/cache action to v5 (#555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-14 01:34:03 -07:00
Wavesonics
7211b452ae Add JS unit-test harness, CI gate, and pen-ink strike logic
Introduces review-logic.js: DOM-free suggestion logic (segment
splitting, overlap guards, smart-spacing, applying accepted edits) plus
deterministic per-suggestion pen-ink strike styling, loadable both as a
browser script and a Node module. Unit-tested with Node's built-in
runner via a new :server:jsTest Gradle task, wired into CI as an
explicit gate with Node set up in the build job.
2026-06-12 17:30:00 -07:00
Wavesonics
322bbff65c Bump jwt to 2.10.3 for CVE-2026-45363 and pin android-emulator-runner to a commit SHA 2026-06-06 15:42:35 -07:00
Wavesonics
c799efb25c Add iOS build to CI 2026-06-04 20:36:56 -07:00
Adam Brown
da516e1772
Android e2e UI test harness (on-device project lifecycle) (#516)
ProjectLifecycleTest launches the real ProjectSelectActivity, creates a project,
waits for it to appear in the list, and confirms opening it launches
ProjectRootActivity (via ActivityMonitor). Cleans up in @After.

- Wire jetbrains-compose ui-test-junit4 into the androidTest source set.
- Tag the create-project affordance (CreateProjectButtonTestTag); "Create
  Project" otherwise appears as three separate on-screen texts.
- Run the instrumented suite on an emulator in CI (android-emulator-runner) with
  AVD snapshot caching.
- Convert HashTest from JUnit Jupiter to JUnit4 so the AndroidJUnit4 runner can
  execute it on-device (it had "no runnable methods" otherwise); use assertEquals
  since assert() is a no-op when assertions are disabled on a device. It now
  verifies EntityHasher's golden vector on Android ART.
- Fix a scope-close crash: getSceneBufferDirectory used a non-recursive
  createDirectory, so closing a project whose scenes/ dir is absent threw on the
  teardown path and crashed the process. Use createDirectories (matching its
  siblings) and order the test teardown so it doesn't delete the project mid-close.
2026-06-03 22:11:14 -07:00
Adam Brown
73185ee7b2
Compile the Android instrumented tests in CI (#518)
buildDebug never touched the androidTest source set, so a stale instrumented
test could - and did - rot unnoticed: HashTest stopped compiling after `tags`
was added to EntityHasher.hashNote.

- Add a :android:assembleDebugAndroidTest step: a fast, emulator-free gate that
  compiles + packages the androidTest source set on every PR.
- Fix the stale HashTest to match the current hashNote signature.
- Exclude the duplicate META-INF/LICENSE files the test deps ship so the
  androidTest APK packages.
2026-05-28 23:07:18 -07:00
Adam Brown
cd02332edf
Harden EntityHasher field-coverage test (nested DTOs + new entity types) (#517)
* Harden EntityHasher field-coverage test against nested and new-type drift

The descriptor-driven sensitivity test only inspected top-level fields, so a
new field on a nested DTO (ProjectTheme, WordCountGoal, Image) - or a whole new
synced type - could be added without the hasher, and no test failed.

- Recurse into owned nested @Serializable DTOs so e.g. theme.tertiary is a
  tracked field path, not an invisible sub-field of `theme`.
- Cover ProjectData / ProjectDataHasher, which had no structural guard at all.
- Assert every ApiProjectEntity.Type has a sensitivity spec, so a new entity
  subtype can't ship without one (reflection-free; server has no kotlin-reflect).

* Run server unit tests explicitly in CI

The server unit tests (including EntityHashSensitivityTest) previously ran only
as a side-effect of koverXmlReport gathering coverage - a kover config change
would silently stop running them. Add an explicit :server:test gate.
2026-05-28 22:39:35 -07:00
renovate[bot]
57ec00c90c
Update codecov/codecov-action action to v6.0.1 (#501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-27 00:57:24 -07:00
renovate[bot]
f02fc4d434
Update codecov/codecov-action action to v6 (#495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-17 20:11:09 -07:00
Adam Brown
8a026f4da4
Authenticate our setup
This gives us more generous rate limites and should help with our flakey builds getting rate limited.
2026-05-15 00:29:18 -07:00
Adam Brown
4fda8d495a
Add round-trip sync integration test suite
Spins up a real Jetty server and a real headless client in the same JVM,
runs the actual sync protocol over HTTP, and asserts against the shared
FakeFileSystem. Covers seven scenarios: smoke (handshake), client upload,
server download, independent edits, conflict resolved to server, conflict
resolved to client, and client delete.

- New :integrationTests Gradle module with the RoundTripTestBase harness,
  HeadlessClient driver, and seven scenario tests.
- :server enables java-test-fixtures so EndToEndTest, E2eTestData, and
  SqliteTestDatabase are shared with the new module instead of duplicated.
- CI: build.yml runs the suite on every PR/develop push; prepare-release.yml
  adds an integration-tests job that gates all seven package jobs, so a
  broken sync protocol blocks the release before any artifact is built.
2026-05-13 22:28:19 -07:00
Adam Brown
50f5dc8543
Address Codacy quality issues 2026-05-13 19:18:14 -07:00
renovate[bot]
ae23c7287f
Update actions/checkout action to v6 (#431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 12:26:32 -08:00
renovate[bot]
c861d466d3
Update codecov/codecov-action action to v5 (#405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 12:25:18 -08:00
renovate[bot]
5b71695f83
Update actions/setup-java action to v5 (#432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 12:25:02 -08:00
Adam Brown
14a4642054 Add Codecov token 2024-10-18 00:39:37 -06:00
Adam Brown
a0e086a6b1 Re-enable Kover 2024-10-17 23:58:09 -06:00
Adam Brown
407177d231
Server entity database refactor (#350)
* Moving all data into the server database
* Server projects now have UUIDs
* Client is now sending the project server ID
* Implemented Projects sync E2E test
* E2E sync test now does uploading and downloading!
* JVM 21
2024-10-01 21:58:12 -07:00
Adam Brown
a69755f4d1 Disable ios build for now 2024-05-26 16:07:11 -07:00
renovate[bot]
2a13a5d08c
Update codecov/codecov-action action to v4 (#239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 17:51:34 -08:00
renovate[bot]
b65b3cf6dd
Update actions/setup-java action to v4 (#184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 22:11:29 -08:00
Wavesonics
d7c0c8c1ff Revert "Update codecov/codecov-action action to v4 (#98)"
This reverts commit a55c3277ee.
2023-09-14 23:30:56 -07:00
renovate[bot]
a55c3277ee
Update codecov/codecov-action action to v4 (#98)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 23:12:25 -07:00
Wavesonics
34271c94a2 Fix Kover task? 2023-09-08 00:52:52 -07:00
renovate[bot]
50f06a9bb4
Update actions/checkout action to v4 (#61)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 22:34:58 -07:00
Bill Booth
930e534434 Add quotes to shell variables in build script
These unquoted variables were susceptible to expansion by the shell.
2023-08-22 00:07:18 -07:00
Bill Booth
fc1f49e333
Update build.yml
set default directly
2023-08-07 23:06:29 -07:00
Bill Booth
116690d9f2
Update build.yml
Remove the conditional disabling ios builds so we can debug
2023-08-06 17:04:07 -07:00
Wavesonics
f0a6e4b814 Disable iOS for now 2023-06-06 23:41:22 -07:00
Bill Booth
6cfe1a8388 Add ios build stage 2023-05-08 21:24:52 -07:00
Adam Brown
08ed0eb7fd CI only builds debug 2023-04-24 18:02:04 -07:00
Adam Brown
45bb531c14 branch rename 2023-04-22 20:10:48 -07:00
Adam Brown
cc41e693bd
Create build.yml 2023-02-09 17:45:08 -08:00