import { expect, it } from 'vitest'
import { hoistStaticGlobParts } from './hoist-static-glob-parts'
it.each([
[
{ base: '/projects/project-a', pattern: './src/**/*.html' },
[{ base: '/projects/project-a/src', pattern: '**/*.html' }],
],
[
{ base: '/projects/project-a', pattern: './src' },
[{ base: '/projects/project-a/src', pattern: '**/*' }],
],
[
{ base: '/projects/project-a', pattern: './src/index.html' },
[{ base: '/projects/project-a/src', pattern: 'index.html' }],
],
[
{ base: '/projects/project-a', pattern: '../project-b/src/**/*.html' },
[{ base: '/projects/project-b/src', pattern: '**/*.html' }],
],
[
{ base: '/projects/project-a', pattern: '../project-{b,c}/src/**/*.html' },
[
{ base: '/projects/project-b/src', pattern: '**/*.html' },
{ base: '/projects/project-c/src', pattern: '**/*.html' },
],
],
[
{ base: '/projects/project-a', pattern: '../project-{b,c}/src/**/*.{js,html}' },
[
{ base: '/projects/project-b/src', pattern: '**/*.js' },
{ base: '/projects/project-b/src', pattern: '**/*.html' },
{ base: '/projects/project-c/src', pattern: '**/*.js' },
{ base: '/projects/project-c/src', pattern: '**/*.html' },
],
],
])('should hoist the static parts of the glob: %s', (input, output) => {
expect(hoistStaticGlobParts(input)).toEqual(output)
})