0fda2d83eb
Deploy to Cloudflare Pages / deploy (push) Failing after 1m16s
- Update site URL to https://crashtestdev.com, remove /crashtestdev base path - Add Gitea Actions workflow for Cloudflare Pages deployment - Remove GitHub Actions workflows (GitHub Pages + legacy Azure SWA) - Update tests to match new site config 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
114 lines
4.0 KiB
JavaScript
114 lines
4.0 KiB
JavaScript
/**
|
|
* Verification test for Astro scaffold (Task 1)
|
|
*
|
|
* Checks that:
|
|
* 1. Gatsby files are removed
|
|
* 2. Astro config files exist with correct content
|
|
* 3. package.json has correct dependencies
|
|
* 4. .gitignore is updated for Astro
|
|
* 5. Build output exists in dist/
|
|
*/
|
|
import { readFileSync, existsSync, statSync } from 'fs';
|
|
import { join, dirname } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
const root = join(__dirname, '..');
|
|
|
|
let passed = 0;
|
|
let failed = 0;
|
|
|
|
function assert(condition, message) {
|
|
if (condition) {
|
|
console.log(` ✓ ${message}`);
|
|
passed++;
|
|
} else {
|
|
console.error(` ✗ ${message}`);
|
|
failed++;
|
|
}
|
|
}
|
|
|
|
function readJSON(path) {
|
|
return JSON.parse(readFileSync(path, 'utf8'));
|
|
}
|
|
|
|
function readText(path) {
|
|
return readFileSync(path, 'utf8');
|
|
}
|
|
|
|
// === 1. Gatsby files removed ===
|
|
console.log('\n1. Gatsby files removed');
|
|
assert(!existsSync(join(root, 'gatsby-config.js')), 'gatsby-config.js removed');
|
|
assert(!existsSync(join(root, 'yarn.lock')), 'yarn.lock removed');
|
|
assert(!existsSync(join(root, 'src/gatsby-theme-blog')), 'src/gatsby-theme-blog/ removed');
|
|
|
|
// === 2. package.json correct ===
|
|
console.log('\n2. package.json');
|
|
const pkgPath = join(root, 'package.json');
|
|
assert(existsSync(pkgPath), 'package.json exists');
|
|
if (existsSync(pkgPath)) {
|
|
const pkg = readJSON(pkgPath);
|
|
assert(pkg.dependencies && pkg.dependencies['astro'], 'astro in dependencies');
|
|
assert(pkg.dependencies && pkg.dependencies['@astrojs/mdx'], '@astrojs/mdx in dependencies');
|
|
assert(pkg.dependencies && pkg.dependencies['@astrojs/rss'], '@astrojs/rss in dependencies');
|
|
assert(pkg.devDependencies && pkg.devDependencies['typescript'], 'typescript in devDependencies');
|
|
assert(!pkg.dependencies || !pkg.dependencies['gatsby'], 'gatsby NOT in dependencies');
|
|
assert(pkg.scripts && pkg.scripts.build, 'build script exists');
|
|
assert(pkg.scripts && pkg.scripts.dev, 'dev script exists');
|
|
}
|
|
|
|
// === 3. astro.config.mjs ===
|
|
console.log('\n3. astro.config.mjs');
|
|
const astroConfigPath = join(root, 'astro.config.mjs');
|
|
assert(existsSync(astroConfigPath), 'astro.config.mjs exists');
|
|
if (existsSync(astroConfigPath)) {
|
|
const config = readText(astroConfigPath);
|
|
assert(config.includes("'https://crashtestdev.com'") || config.includes('"https://crashtestdev.com"'), 'site is https://crashtestdev.com');
|
|
assert(config.includes('@astrojs/mdx'), 'mdx integration referenced');
|
|
}
|
|
|
|
// === 4. tsconfig.json ===
|
|
console.log('\n4. tsconfig.json');
|
|
const tsconfigPath = join(root, 'tsconfig.json');
|
|
assert(existsSync(tsconfigPath), 'tsconfig.json exists');
|
|
if (existsSync(tsconfigPath)) {
|
|
const tsconfig = readJSON(tsconfigPath);
|
|
assert(tsconfig.extends === 'astro/tsconfigs/strict', 'extends astro/tsconfigs/strict');
|
|
}
|
|
|
|
// === 5. src/env.d.ts ===
|
|
console.log('\n5. src/env.d.ts');
|
|
const envDtsPath = join(root, 'src/env.d.ts');
|
|
assert(existsSync(envDtsPath), 'src/env.d.ts exists');
|
|
if (existsSync(envDtsPath)) {
|
|
const envDts = readText(envDtsPath);
|
|
assert(envDts.includes('astro/client'), 'references astro/client');
|
|
}
|
|
|
|
// === 6. .gitignore updated ===
|
|
console.log('\n6. .gitignore');
|
|
const gitignorePath = join(root, '.gitignore');
|
|
assert(existsSync(gitignorePath), '.gitignore exists');
|
|
if (existsSync(gitignorePath)) {
|
|
const gitignore = readText(gitignorePath);
|
|
assert(gitignore.includes('dist/'), 'dist/ in .gitignore');
|
|
assert(gitignore.includes('.astro/'), '.astro/ in .gitignore');
|
|
assert(!gitignore.includes('# gatsby'), 'no gatsby section in .gitignore');
|
|
}
|
|
|
|
// === 7. Placeholder page ===
|
|
console.log('\n7. Placeholder page');
|
|
assert(existsSync(join(root, 'src/pages/index.astro')), 'src/pages/index.astro exists');
|
|
|
|
// === 8. Build output ===
|
|
console.log('\n8. Build output');
|
|
assert(existsSync(join(root, 'dist')), 'dist/ directory exists');
|
|
|
|
// === Summary ===
|
|
console.log(`\n${'='.repeat(40)}`);
|
|
console.log(`Results: ${passed} passed, ${failed} failed out of ${passed + failed}`);
|
|
if (failed > 0) {
|
|
process.exit(1);
|
|
} else {
|
|
console.log('All scaffold verification tests passed!');
|
|
} |