|
| 1 | +import { beforeEach, expect, test } from 'vitest' |
| 2 | + |
| 3 | +import { mockFileSystem } from '../../tests/mock-file-system.js' |
| 4 | +import { NodeFS } from '../node/file-system.js' |
| 5 | +import { Project } from '../project.js' |
| 6 | + |
| 7 | +beforeEach((ctx) => { |
| 8 | + ctx.fs = new NodeFS() |
| 9 | +}) |
| 10 | + |
| 11 | +test('detects a TanStack Router site', async ({ fs }) => { |
| 12 | + const cwd = mockFileSystem({ |
| 13 | + 'package.json': JSON.stringify({ |
| 14 | + scripts: { |
| 15 | + dev: 'vite --port=3001', |
| 16 | + build: 'vite build && tsc --noEmit', |
| 17 | + serve: 'vite preview', |
| 18 | + start: 'vite', |
| 19 | + }, |
| 20 | + dependencies: { |
| 21 | + '@tanstack/react-router': '^1.58.15', |
| 22 | + '@tanstack/router-devtools': '^1.58.15', |
| 23 | + '@tanstack/router-plugin': '^1.58.12', |
| 24 | + react: '^18.2.0', |
| 25 | + 'react-dom': '^18.2.0', |
| 26 | + }, |
| 27 | + devDependencies: { |
| 28 | + vite: '^5.4.5', |
| 29 | + }, |
| 30 | + }), |
| 31 | + }) |
| 32 | + const detected = await new Project(fs, cwd).detectFrameworks() |
| 33 | + |
| 34 | + const detectedFrameworks = (detected ?? []).map((framework) => framework.id) |
| 35 | + expect(detectedFrameworks).not.toContain('vinxi') |
| 36 | + expect(detectedFrameworks).not.toContain('vite') |
| 37 | + expect(detectedFrameworks).not.toContain('tanstack-start') |
| 38 | + |
| 39 | + expect(detected?.[0]?.id).toBe('tanstack-router') |
| 40 | + expect(detected?.[0]?.build?.command).toBe('vite build') |
| 41 | + expect(detected?.[0]?.build?.directory).toBe('dist') |
| 42 | + expect(detected?.[0]?.dev?.command).toBe('vite dev') |
| 43 | + expect(detected?.[0]?.dev?.port).toBe(3000) |
| 44 | +}) |
0 commit comments