feat(chemistry7): Phase 3 Волна 2 — Глава 3 завершена (§21, ЛО4, §22, ПР3, финал)
§21 Кислоты и металлы (интерактивный ряд активности), ЛО4 Кислоты с металлами (опыт: пузырьки H2, медь не реагирует), §22 Соли как продукты замещения (конструктор солей по валентности), ПР3 Получение водорода (проверка чистоты — гремучий газ), финал главы (6 интегрированных боссов + шпаргалка). Глава 3 «Водород» наполнена полностью (§§18–22). Тесты chem7: 14/14 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -176,6 +176,21 @@ test('ch3 Волна 1: §18 + §19 + §20 + ЛО3 монтируются', asyn
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch3 Волна 2: §21 + ЛО4 + §22 + ПР3 + финал главы монтируются', async () => {
|
||||
const { doc, errors } = await loadDom('chemistry_7_ch3.html');
|
||||
doc.defaultView.goTo('p21'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p21-act .act-cell'), 'ряд активности §21');
|
||||
doc.defaultView.goTo('lo4'); await wait(100);
|
||||
assert.ok(doc.querySelector('#lo4-rx #lo4-go'), 'опыт металл+кислота ЛО4');
|
||||
doc.defaultView.goTo('p22'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p22-salt #p22-m'), 'конструктор солей §22');
|
||||
doc.defaultView.goTo('pr3'); await wait(100);
|
||||
assert.ok(doc.querySelector('#pr3-test #pr3-mix'), 'проверка чистоты H2 ПР3');
|
||||
doc.defaultView.goTo('final3'); await wait(120);
|
||||
assert.ok(doc.querySelectorAll('#navDotsfinal3 .nav-dot').length >= 6, 'боссы финала главы 3');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
/* ── Хаб: каталог глав + финал курса ── */
|
||||
function buildHub() {
|
||||
let html = readF('frontend/textbooks/chemistry_7_hub.html');
|
||||
|
||||
Reference in New Issue
Block a user