diff --git a/index.html b/index.html new file mode 100644 index 0000000..4c307ad --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + The Director + + + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..8634e97 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "gm-director", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "test": "vitest run", + "test:watch": "vitest" + }, + "devDependencies": { + "jsdom": "^24.0.0", + "vite": "^5.2.0", + "vitest": "^1.6.0" + } +} diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..f8b25d9 --- /dev/null +++ b/src/main.js @@ -0,0 +1,2 @@ +// Boot entry. Component registration is added in later tasks. +export const APP = 'the-director'; diff --git a/tests/smoke.test.js b/tests/smoke.test.js new file mode 100644 index 0000000..12542b5 --- /dev/null +++ b/tests/smoke.test.js @@ -0,0 +1,13 @@ +// tests/smoke.test.js +import { describe, it, expect } from 'vitest'; +import { APP } from '../src/main.js'; + +describe('scaffold', () => { + it('boots and exposes the app id', () => { + expect(APP).toBe('the-director'); + }); + it('has a working DOM environment', () => { + document.body.innerHTML = '
hi
'; + expect(document.getElementById('x').textContent).toBe('hi'); + }); +}); diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..274012c --- /dev/null +++ b/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + test: { + environment: 'jsdom', + include: ['tests/**/*.test.js'], + }, +});