import {test} from 'node:test';
import assert from 'node:assert/strict';
import {loadPage} from './learnrun.js';
const texts = (page, selector) => [...page.document.querySelectorAll(selector)].map((el) => el.textContent);
test('Der Platzhalter ist weg', async () => {
const page = await loadPage();
assert.equal(page.document.querySelector('#placeholder'), null, 'der Platzhalter ist noch auf der Seite');
});
test('Nur die nicht ausverkauften Gerichte werden gezeigt', async () => {
const page = await loadPage();
const names = texts(page, '#menu .name');
assert.deepEqual(names, ['Soup', 'Salad'], 'die Speisekarte zeigt ' + JSON.stringify(names));
});
test('Jede Zeile zeigt ihren Preis mit zwei Nachkommastellen', async () => {
const page = await loadPage();
const prices = texts(page, '#menu .price');
assert.deepEqual(prices, ['€4.00', '€6.50'], 'die Preise sind ' + JSON.stringify(prices));
});
test('Jede Zeile der Speisekarte ist eine Kopie des Templates', async () => {
const page = await loadPage();
const classes = [...page.document.querySelectorAll('#menu li')].map((li) => li.className);
assert.deepEqual(classes, ['dish', 'dish'], 'die Zeilen haben die Klassen ' + JSON.stringify(classes));
});
test('Das Template selbst bleibt leer', async () => {
const page = await loadPage();
const content = page.document.querySelector('#dish').content;
assert.equal(content.querySelector('.name').textContent, '', 'das Template wurde ausgefüllt: kopieren Sie es und füllen Sie die Kopie');
});