browser-service.test.js
Pfad: wetell-headless/browser-service.test.js
Ext: js
Größe: 1273 Bytes
Geändert: 2026-07-16 17:51:21+02
'use strict';
const test = require('node:test');
const assert = require('node:assert/strict');
const { BrowserService } = require('./browser-service');
test('starts one browser and creates one isolated context per job', async () => {
const counters = { launches: 0, contexts: 0, closes: 0 };
const page = {
goto: async () => {},
waitForLoadState: async () => {},
locator: (selector) => ({
fill: async () => {},
first() { return this; },
click: async () => {},
count: async () => selector === 'input[type="password"]' ? 0 : 1,
}),
};
const browser = {
newContext: async () => {
counters.contexts++;
return { newPage: async () => page, close: async () => { counters.closes++; } };
},
close: async () => {},
};
const launcher = { launch: async () => { counters.launches++; return browser; } };
const service = new BrowserService(1000, launcher);
await service.start();
await service.start();
await service.execute('login', { username: 'u', password: 'p' });
await service.execute('login', { username: 'u', password: 'p' });
assert.deepEqual(counters, { launches: 1, contexts: 2, closes: 2 });
});