import { Logger, LogResults } from '../common/internal/logging/logger.js'; import { TestQuerySingleCase } from '../common/internal/query/query.js'; import { IterableTestGroup, TestCaseID } from '../common/internal/test_group.js'; import { objectEquals } from '../common/util/util.js'; import { UnitTest } from './unit_test.js'; export class TestGroupTest extends UnitTest { async run(g: IterableTestGroup): Promise { const logger = new Logger({ overrideDebugMode: true }); for (const t of g.iterate()) { for (const rc of t.iterate()) { const query = new TestQuerySingleCase('xx', ['yy'], rc.id.test, rc.id.params); const [rec] = logger.record(query.toString()); await rc.run(rec, query, []); } } return logger.results; } expectCases(g: IterableTestGroup, cases: TestCaseID[]): void { const gcases = []; for (const t of g.iterate()) { gcases.push(...Array.from(t.iterate(), c => c.id)); } this.expect( objectEquals(gcases, cases), `expected ${JSON.stringify(cases)} got ${JSON.stringify(gcases)}` ); } }