45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { TestProject } from '../utils';
|
|
import { execaCommand } from 'execa';
|
|
import glob from 'fast-glob';
|
|
|
|
describe('Init command', () => {
|
|
it('should download and create a template', async () => {
|
|
const project = new TestProject();
|
|
|
|
await execaCommand(`pnpm -s wxt init ${project.root} -t vue --pm npm`, {
|
|
env: { ...process.env, CI: 'true' },
|
|
stdio: 'ignore',
|
|
});
|
|
const files = await glob('**/*', {
|
|
cwd: project.root,
|
|
onlyFiles: true,
|
|
dot: true,
|
|
});
|
|
|
|
expect(files.sort()).toMatchInlineSnapshot(`
|
|
[
|
|
".gitignore",
|
|
".vscode/extensions.json",
|
|
"README.md",
|
|
"assets/vue.svg",
|
|
"components/HelloWorld.vue",
|
|
"entrypoints/background.ts",
|
|
"entrypoints/popup/App.vue",
|
|
"entrypoints/popup/index.html",
|
|
"entrypoints/popup/main.ts",
|
|
"entrypoints/popup/style.css",
|
|
"package.json",
|
|
"public/icon/128.png",
|
|
"public/icon/16.png",
|
|
"public/icon/32.png",
|
|
"public/icon/48.png",
|
|
"public/icon/96.png",
|
|
"public/wxt.svg",
|
|
"tsconfig.json",
|
|
"wxt.config.ts",
|
|
]
|
|
`);
|
|
}, 30e3);
|
|
});
|