← Code-Übersicht

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 });
});