Feat v0.7.3 extension shell migration
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / test-frontend (pull_request) Successful in 7s
CI/CD / test-sqlite (pull_request) Successful in 2m48s
CI/CD / test-go-pg (pull_request) Successful in 2m53s
CI/CD / build-and-deploy (pull_request) Successful in 1m8s
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / test-frontend (pull_request) Successful in 7s
CI/CD / test-sqlite (pull_request) Successful in 2m48s
CI/CD / test-go-pg (pull_request) Successful in 2m53s
CI/CD / build-and-deploy (pull_request) Successful in 1m8s
Migrate Chat, Notes, and Schedules from legacy sw.shell.Topbar to the v0.7.0 shell topbar contract (sw.shell.topbar.setTitle/setSlot), eliminating double topbars on all extension surfaces. - Chat v0.3.0: reactive slot for thread title + People button - Notes v0.9.0: slot for New/Import/Graph buttons - Schedules v0.2.0: reactive slot for count + New button - 6 new shell-topbar runner tests (2 per surface) - Headless E2E deferred to v0.7.5 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,7 +36,8 @@
|
||||
var modules = [
|
||||
'notes-crud.js',
|
||||
'folders.js',
|
||||
'tags-search.js'
|
||||
'tags-search.js',
|
||||
'shell-topbar.js'
|
||||
];
|
||||
|
||||
var loaded = 0;
|
||||
|
||||
31
packages/notes-runner/js/shell-topbar.js
Normal file
31
packages/notes-runner/js/shell-topbar.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Notes Runner — notes/shell-topbar suite
|
||||
*
|
||||
* Validates the Notes surface uses the v0.7.0 shell topbar contract
|
||||
* and does not render the legacy sw.shell.Topbar component.
|
||||
*/
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
sw.testing.suite('notes/shell-topbar', async function (s) {
|
||||
|
||||
s.test('surface JS does not reference legacy Topbar', async function (t) {
|
||||
var base = window.__BASE__ || '';
|
||||
var resp = await fetch(base + '/surfaces/notes/js/main.js');
|
||||
t.assert.eq(resp.status, 200, 'fetched notes main.js');
|
||||
var src = await resp.text();
|
||||
var hasLegacy = src.indexOf('sw.shell.Topbar') !== -1;
|
||||
t.assert.ok(!hasLegacy, 'no sw.shell.Topbar reference (uses shell topbar API)');
|
||||
});
|
||||
|
||||
s.test('surface JS uses shell topbar API', async function (t) {
|
||||
var base = window.__BASE__ || '';
|
||||
var resp = await fetch(base + '/surfaces/notes/js/main.js');
|
||||
var src = await resp.text();
|
||||
var usesAPI = src.indexOf('sw.shell.topbar.setTitle') !== -1
|
||||
|| src.indexOf('sw.shell.topbar.setSlot') !== -1;
|
||||
t.assert.ok(usesAPI, 'uses sw.shell.topbar.setTitle or setSlot');
|
||||
});
|
||||
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user