feat(chemistry7): Phase 2 Волна 2 — Глава 2 завершена (§16, §17, ПР2, финал)
§16 Оксиды (конструктор оксида по валентности + классификатор оксид/не оксид), §17 Получение кислорода (схема разложения KMnO4/H2O2, понятие катализатора), ПР2 Получение кислорода (доказательство тлеющей лучинкой), финал главы (6 интегрированных боссов + шпаргалка). Глава 2 «Кислород» наполнена полностью (§§13–17). Тесты chem7: 12/12 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -148,6 +148,20 @@ test('ch2 Волна 1: интерактивы §13 + ЛО2 + §14 + §15 мон
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch2 Волна 2: §16 + §17 + ПР2 + финал главы монтируются', async () => {
|
||||
const { doc, errors } = await loadDom('chemistry_7_ch2.html');
|
||||
doc.defaultView.goTo('p16'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p16-bld #p16-el'), 'конструктор оксида §16');
|
||||
assert.ok(doc.querySelector('#p16-cls .c7-chip'), 'классификатор оксид/не оксид §16');
|
||||
doc.defaultView.goTo('p17'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p17-prod #p17-pick'), 'схема получения O2 §17');
|
||||
doc.defaultView.goTo('pr2'); await wait(100);
|
||||
assert.ok(doc.querySelector('#pr2-test #pr2-go'), 'проверка кислорода ПР2');
|
||||
doc.defaultView.goTo('final2'); await wait(120);
|
||||
assert.ok(doc.querySelectorAll('#navDotsfinal2 .nav-dot').length >= 6, 'боссы финала главы 2');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
/* ── Хаб: каталог глав + финал курса ── */
|
||||
function buildHub() {
|
||||
let html = readF('frontend/textbooks/chemistry_7_hub.html');
|
||||
|
||||
Reference in New Issue
Block a user