mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 00:14:56 +03:00
fix(web-test): discoverTests для одиночного файла + первый smoke-тест
- Fix: discoverTests падал с ENOTDIR при передаче .test.mjs файла - Добавлен 01-navigation.test.mjs — навигация по разделам, открытие списков через navigateLink, переключение между подсистемами Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -361,8 +361,8 @@ async function cmdTest(rawArgs) {
|
||||
}
|
||||
|
||||
// Load config if exists
|
||||
const testDir = existsSync(testPath) && readdirSync(testPath, { withFileTypes: true }).length >= 0
|
||||
? testPath : dirname(testPath);
|
||||
const isFile = testPath.endsWith('.test.mjs');
|
||||
const testDir = isFile ? dirname(testPath) : testPath;
|
||||
const configPath = resolve(testDir, 'webtest.config.mjs');
|
||||
let config = {};
|
||||
if (existsSync(configPath)) {
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
export const name = 'Навигация по разделам';
|
||||
export const tags = ['nav', 'smoke'];
|
||||
export const timeout = 60000;
|
||||
|
||||
export default async function({ navigateSection, getPageState, openCommand, closeForm, assert, step, log }) {
|
||||
|
||||
await step('Чтение начального состояния', async () => {
|
||||
const state = await getPageState();
|
||||
const names = (state.sections || []).map(s => s.name);
|
||||
log('Sections: ' + names.join(', '));
|
||||
assert.ok(names.length >= 2, 'Минимум 2 раздела');
|
||||
assert.includes(names, 'Склад', 'Раздел Склад должен быть');
|
||||
assert.includes(names, 'Администрирование', 'Раздел Администрирование должен быть');
|
||||
});
|
||||
|
||||
await step('Переход в раздел Склад', async () => {
|
||||
const result = await navigateSection('Склад');
|
||||
log('Commands: ' + (result.commands || []).map(c => c.name).join(', '));
|
||||
assert.ok(result.commands?.length > 0, 'Должны быть команды в разделе Склад');
|
||||
});
|
||||
|
||||
await step('Открыть справочник Контрагенты', async () => {
|
||||
const state = await openCommand('Контрагенты');
|
||||
assert.ok(state.form, 'Форма списка Контрагентов должна открыться');
|
||||
log('Opened: ' + state.title);
|
||||
await closeForm();
|
||||
});
|
||||
|
||||
await step('Переход в раздел Администрирование', async () => {
|
||||
const result = await navigateSection('Администрирование');
|
||||
log('Commands: ' + (result.commands || []).map(c => c.name).join(', '));
|
||||
assert.ok(result.commands?.length > 0, 'Должны быть команды в разделе Администрирование');
|
||||
});
|
||||
|
||||
await step('Открыть Номенклатуру из раздела Склад', async () => {
|
||||
await navigateSection('Склад');
|
||||
const state = await openCommand('Номенклатура');
|
||||
assert.ok(state.form, 'Форма списка Номенклатуры должна открыться');
|
||||
log('Opened: ' + state.title);
|
||||
await closeForm();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user