const { test } = require('node:test');
const assert = require('node:assert');
const { renderLoginPage, renderAdminPage } = require('../src/adminView');
test('renderLoginPage without error omits the error message', () => {
const html = renderLoginPage();
assert.ok(!html.includes('class="error"'));
assert.ok(html.includes('action="/admin/login"'));
});
test('renderLoginPage with error escapes and shows the message', () => {
const html = renderLoginPage('');
assert.ok(!html.includes(''));
assert.ok(html.includes('<script>'));
});
test('renderAdminPage lists emails with a remove form for each, escaping HTML', () => {
const html = renderAdminPage(['a@example.com', '@example.com']);
assert.ok(html.includes('a@example.com'));
assert.ok(html.includes('value="a@example.com"'));
assert.ok(!html.includes('@example.com'));
assert.ok(html.includes('action="/admin/allowlist/remove"'));
assert.ok(html.includes('action="/admin/allowlist/add"'));
});
test('renderAdminPage shows an error message when provided', () => {
const html = renderAdminPage(['a@example.com'], 'invalid email format');
assert.ok(html.includes('invalid email format'));
});