diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-03 00:11:25 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-03 00:11:25 -0500 |
| commit | 8acc99d88527a9dfecf7ebceb858f344819d10c3 (patch) | |
| tree | 025136d5f9dcce9641d28b19ec9113fb38e05a13 /tests/test-pearl-api.el | |
| parent | 68d51b341bccc72c7b01f547e43ce90a76729244 (diff) | |
| download | pearl-8acc99d88527a9dfecf7ebceb858f344819d10c3.tar.gz pearl-8acc99d88527a9dfecf7ebceb858f344819d10c3.zip | |
fix(views): rebuild Linear view URLs instead of querying the missing url field
Linear's CustomView type has no url field. Three GraphQL selections requested it (the custom-views list query and both the create and update mutation payloads), so each of those requests returned HTTP 400 and pearl got nil back. Running a Linear view came up with an empty picker, and publishing or updating a local view to Linear failed silently. The test suite stayed green because the view tests mocked a url field the real API never returns.
I dropped url from all three selections. The workspace urlKey is now fetched once and cached, and a view's web URL is rebuilt as https://linear.app/<urlKey>/view/<view-id>, the shape Linear's own favorite URLs use (the full view UUID, not the slug id). pearl-open-current-view-in-linear keeps working, and when the urlKey is unavailable it degrades to nil so the link builder can't throw. That also stops a urlKey hiccup right after a successful publish from aborting the record step and orphaning the new view.
I added regression locks asserting neither the list query nor the mutation payload selection requests url, since the field name is the schema contract that broke.
Diffstat (limited to 'tests/test-pearl-api.el')
0 files changed, 0 insertions, 0 deletions
