|
1 | 1 | # Experience Auditor |
2 | 2 |
|
3 | | -A polished, real-world example app for the **Experience Editor toolbar** — the |
| 3 | +A polished, real-world example app for the **Experience Canvas toolbar** — the |
4 | 4 | `experience-toolbar` location introduced in |
5 | 5 | [`@contentful/app-sdk@4.60.0`](https://www.npmjs.com/package/@contentful/app-sdk). |
6 | 6 |
|
7 | | -Experience Auditor runs alongside the Experience Editor and continuously audits |
| 7 | +Experience Auditor runs alongside the experience canvas and continuously audits |
8 | 8 | the experience you are editing for **accessibility, SEO, and |
9 | 9 | content-completeness** issues. It demonstrates the standout capability of the |
10 | 10 | toolbar location: **live, selection-aware tooling that reads the experience tree |
@@ -170,24 +170,23 @@ npm run create-app-definition |
170 | 170 | selecting the **App configuration screen** and **Experience toolbar** locations, |
171 | 171 | pointing the app at `http://localhost:3000`. |
172 | 172 |
|
173 | | -## A note on verification |
| 173 | +## Verification |
174 | 174 |
|
175 | | -This app is built against the published `@contentful/app-sdk@4.60.0` types, |
176 | | -which are the contract for the toolbar location. The host renderer that serves |
177 | | -`sdk.experiences` at runtime is still rolling out, so the app is **type-verified and |
178 | | -unit-tested against a mocked SDK** — 36 tests cover the audit rules, scoring, |
| 175 | +This app is verified working end-to-end against a live experience canvas — the |
| 176 | +host renderer serving `sdk.experiences` — in addition to being **type-checked |
| 177 | +and unit-tested against a mocked SDK**. 38 tests cover the audit rules, scoring, |
179 | 178 | the collector and its binding resolution, capability detection, the suggested- |
180 | | -fix derivation, and the toolbar's locate / fix / publish-gate behavior. It is |
181 | | -not yet verified end-to-end inside a live Experience Editor; that live |
182 | | -verification is tracked separately as the host renderer rolls out. The API |
183 | | -shapes used here match the published types exactly. |
| 179 | +fix derivation, the auto-resize wiring, and the toolbar's locate / fix / |
| 180 | +publish-gate behavior. The API shapes used here match the published |
| 181 | +`@contentful/app-sdk` types exactly, so the audit you run against the canvas is |
| 182 | +the same code these tests exercise. |
184 | 183 |
|
185 | 184 | > **Note on `getRootNodes()`.** The audit traversal starts from |
186 | | -> `sdk.experiences.experience.getRootNodes()`, which currently resolves to an |
187 | | -> empty list until the host wires up experience-tree sync. Against a live host |
188 | | -> today the toolbar shows a distinct "no components to audit yet" state rather |
189 | | -> than the all-clear celebration; demo mode (`/?demo`) exercises the full loop |
190 | | -> against a seeded in-memory experience. |
| 185 | +> `sdk.experiences.experience.getRootNodes()`. When it returns an empty list |
| 186 | +> — an experience with nothing on the canvas yet — the toolbar shows a distinct |
| 187 | +> "no components to audit yet" state rather than the all-clear celebration; |
| 188 | +> demo mode (`/?demo`) exercises the full loop against a seeded in-memory |
| 189 | +> experience. |
191 | 190 |
|
192 | 191 | ## Available scripts |
193 | 192 |
|
|
0 commit comments