- Timestamp:
- 08/14/2026 03:02:35 AM (4 weeks ago)
- Branches:
- main
- Children:
- 7e474f7
- Parents:
- f704237
- File:
-
- 1 edited
-
test/migrate-page.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/migrate-page.test.js
rf704237 r47f1183 64 64 'je claim op je oude account mag niet sneuvelen op een kleurwijziging'); 65 65 }); 66 67 // ── Het stappenplan ─────────────────────────────────────────────── 68 69 test('het stappenplan zet de volgorde vast die niemand raadt', () => { 70 const ejs = fs.readFileSync('src/views/pages/admin-migrate.ejs', 'utf8'); 71 const plan = ejs.indexOf('mig-steps'); 72 const alias = ejs.indexOf('name="ap_aliases"'); 73 assert.ok(plan > -1, 'er hoort een stappenplan te staan'); 74 assert.ok(plan < alias, 'en bovenaan, voor de knoppen die het beschrijft'); 75 }); 76 77 test('"hier" draait om als je vanaf de vertrekkende kant kijkt', async () => { 78 // Deze pagina draait op BEIDE instanties. Stap 1, 3 en 4 horen op de nieuwe, 79 // stap 2 en 5 op de oude. Een vaste tekst is dus op de helft van de schermen 80 // onzin. Ik had ze bij het bouwen precies verkeerd om: beide labels werden 81 // "hier", en dat zag ik pas door het te renderen. 82 const ejs = fs.readFileSync('src/views/pages/admin-migrate.ejs', 'utf8'); 83 const m = /var _hier = stap\.isOud \? t\('([a-z.\_]+)'\)\s*:\s*t\('([a-z.\_]+)'\)/.exec(ejs); 84 const d = /var _daar = stap\.isOud \? t\('([a-z.\_]+)'\)\s*:\s*t\('([a-z.\_]+)'\)/.exec(ejs); 85 assert.ok(m && d, 'de perspectief-variabelen horen er te zijn'); 86 assert.equal(m[1], 'mig.plan_new', 'op de oude kant wijst stap 1/3/4 naar de NIEUWE'); 87 assert.equal(m[2], 'mig.plan_here', 'op de nieuwe kant is dat gewoon hier'); 88 assert.equal(d[1], 'mig.plan_here', 'en het aankondigen gebeurt dan HIER'); 89 assert.equal(d[2], 'mig.plan_old', 'terwijl je vanaf de nieuwe kant naar de oude wijst'); 90 assert.notEqual(m[1], d[1], 'de twee mogen nooit hetzelfde label krijgen'); 91 }); 92 93 test('het aankondigen heet geen "laatste stap" meer', async () => { 94 // Het was er wel een in mijn hoofd, maar niet in de code: de ophaalknop 95 // weigert met not_moved_here zolang de Move niet gedaan is. Aankondigen is 96 // dus stap 2, niet de afsluiter. 97 const i18n = await import('../src/services/i18n.js'); 98 for (const l of ['nl', 'en', 'de']) { 99 const t = i18n.t(l, 'mig.move_title'); 100 assert.doesNotMatch(t, /laatste|last step|letzter/i, `${l}: ${t}`); 101 assert.match(t, /2/, `${l}: het is stap 2, en dat hoort er te staan`); 102 } 103 }); 104 105 test('stap 5 vertelt wat er moet gebeuren voor je het domein loslaat', async () => { 106 // Er is geen knop voor, en dat staat er ook bij. Een stappenplan dat een stap 107 // beschrijft die niet bestaat is erger dan geen stappenplan. 108 const i18n = await import('../src/services/i18n.js'); 109 const nl = i18n.t('nl', 'mig.plan_5_why'); 110 assert.match(nl, /verwijder/i, 'de Delete-ronde'); 111 assert.match(nl, /alias/i, 'en de alias weghalen'); 112 assert.match(nl, /nog geen knop/i, 'en eerlijk dat het handwerk is'); 113 });
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)