export const description = `Test for "parseImports" utility.`;import { makeTestGroup } from '../common/framework/test_group.js';import { parseImports } from '../common/util/parse_imports.js';import { UnitTest } from './unit_test.js';class F extends UnitTest {test(content: string, expect: string[]): void {const got = parseImports('a/b/c.js', content);const expectJoined = expect.join('\n');const gotJoined = got.join('\n');this.expect(expectJoined === gotJoined,`expected: ${expectJoined}got: ${gotJoined}`);}}export const g = makeTestGroup(F);g.test('empty').fn(t => {t.test(``, []);t.test(`\n`, []);t.test(`\n\n`, []);});g.test('simple').fn(t => {t.test(`import 'x/y/z.js';`, ['a/b/x/y/z.js']);t.test(`import * as blah from 'x/y/z.js';`, ['a/b/x/y/z.js']);t.test(`import { blah } from 'x/y/z.js';`, ['a/b/x/y/z.js']);});g.test('multiple').fn(t => {t.test(`blah blah blahimport 'x/y/z.js';more blahimport * as blah from 'm/n/o.js';extra blahimport { blah } from '../h.js';ending with blah`,['a/b/x/y/z.js', 'a/b/m/n/o.js', 'a/h.js']);});g.test('multiline').fn(t => {t.test(`import {blah} from 'x/y/z.js';`,['a/b/x/y/z.js']);t.test(`import {blahA,blahB,} from 'x/y/z.js';`,['a/b/x/y/z.js']);});g.test('file_characters').fn(t => {t.test(`import '01234_56789.js';`, ['a/b/01234_56789.js']);});g.test('relative_paths').fn(t => {t.test(`import '../x.js';`, ['a/x.js']);t.test(`import '../x/y.js';`, ['a/x/y.js']);t.test(`import '../../x.js';`, ['x.js']);t.test(`import '../../../x.js';`, ['../x.js']);t.test(`import '../../../../x.js';`, ['../../x.js']);});