| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const test = require('node:test');
- const assert = require('node:assert/strict');
- const fs = require('node:fs');
- test('step definitions module exposes ordered shared step metadata', () => {
- const source = fs.readFileSync('data/step-definitions.js', 'utf8');
- const globalScope = {};
- const api = new Function('self', `${source}; return self.MultiPageStepDefinitions;`)(globalScope);
- const steps = api.getSteps();
- assert.equal(Array.isArray(steps), true);
- assert.equal(steps.length, 10);
- assert.deepStrictEqual(
- steps.map((step) => step.order),
- steps.map((step) => step.order).slice().sort((left, right) => left - right)
- );
- assert.deepStrictEqual(
- steps.map((step) => step.id),
- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- );
- assert.deepStrictEqual(
- steps.map((step) => step.key),
- [
- 'open-chatgpt',
- 'submit-signup-email',
- 'fill-password',
- 'fetch-signup-code',
- 'fill-profile',
- 'get-plus-link',
- 'fill-stripe-checkout',
- 'fill-paypal-login',
- 'fill-paypal-payment',
- 'sync-cpa-session',
- ]
- );
- });
- test('sidepanel html loads shared step definitions before sidepanel bootstrap', () => {
- const html = fs.readFileSync('sidepanel/sidepanel.html', 'utf8');
- const definitionsIndex = html.indexOf('<script src="../data/step-definitions.js"></script>');
- const sidepanelIndex = html.indexOf('<script src="sidepanel.js"></script>');
- assert.notEqual(definitionsIndex, -1);
- assert.notEqual(sidepanelIndex, -1);
- assert.ok(definitionsIndex < sidepanelIndex);
- });
|