feat(chemistry7): Phase 4 — Глава 4 «Вода» завершена (§§23–26 + ЛО5 + ПР4 + финал)
§23 Состав и свойства воды (разложение 2:1 + реакции воды), §24 Основания (конструктор Me(OH)n + индикаторы щёлочи), ЛО5 Действие щелочей на индикаторы, §25 Реакция нейтрализации (анимация фенолфталеин малиновый → бесцветный), ПР4 Реакция нейтрализации, §26 Охрана окружающей среды (экология-инфографика), финал главы (6 боссов). chem7_ch4_widgets.js. ВСЕ 26 параграфов курса «Химия 7» наполнены. Тесты chem7: 15/15 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -26,6 +26,7 @@ function buildPage(file) {
|
||||
'/js/chem7_ch1_widgets.js': readF('frontend/js/chem7_ch1_widgets.js'),
|
||||
'/js/chem7_ch2_widgets.js': readF('frontend/js/chem7_ch2_widgets.js'),
|
||||
'/js/chem7_ch3_widgets.js': readF('frontend/js/chem7_ch3_widgets.js'),
|
||||
'/js/chem7_ch4_widgets.js': readF('frontend/js/chem7_ch4_widgets.js'),
|
||||
'/js/chem8_engine.js': readF('frontend/js/chem8_engine.js')
|
||||
};
|
||||
html = html
|
||||
@@ -191,6 +192,25 @@ test('ch3 Волна 2: §21 + ЛО4 + §22 + ПР3 + финал главы мо
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch4: вся глава 4 (§23–§26 + ЛО5 + ПР4 + финал) монтируется', async () => {
|
||||
const { doc, errors } = await loadDom('chemistry_7_ch4.html');
|
||||
assert.ok(doc.querySelector('#p23-water #p23-pick'), 'разложение/реакции воды §23');
|
||||
doc.defaultView.goTo('p24'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p24-bld #p24-m'), 'конструктор оснований §24');
|
||||
assert.ok(doc.querySelector('#p24-ind #p24-ind-sel'), 'индикаторы щёлочи §24');
|
||||
doc.defaultView.goTo('lo5'); await wait(100);
|
||||
assert.ok(doc.querySelector('#lo5-ind #lo5-ind-sel'), 'индикаторы ЛО5');
|
||||
doc.defaultView.goTo('p25'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p25-neu #p25-neu-go'), 'нейтрализация §25');
|
||||
doc.defaultView.goTo('pr4'); await wait(100);
|
||||
assert.ok(doc.querySelector('#pr4-neu #pr4-neu-go'), 'нейтрализация ПР4');
|
||||
doc.defaultView.goTo('p26'); await wait(100);
|
||||
assert.ok(doc.querySelector('#p26-eco .eco-it'), 'экология §26');
|
||||
doc.defaultView.goTo('final4'); await wait(120);
|
||||
assert.ok(doc.querySelectorAll('#navDotsfinal4 .nav-dot').length >= 6, 'боссы финала главы 4');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
/* ── Хаб: каталог глав + финал курса ── */
|
||||
function buildHub() {
|
||||
let html = readF('frontend/textbooks/chemistry_7_hub.html');
|
||||
|
||||
Reference in New Issue
Block a user