diff options
Diffstat (limited to 'packages/create-astro/test')
-rw-r--r-- | packages/create-astro/test/create-astro.test.js | 6 | ||||
-rw-r--r-- | packages/create-astro/test/external.test.js | 29 | ||||
-rw-r--r-- | packages/create-astro/test/helpers.js | 13 |
3 files changed, 43 insertions, 5 deletions
diff --git a/packages/create-astro/test/create-astro.test.js b/packages/create-astro/test/create-astro.test.js index 30f466d30..d095b2da9 100644 --- a/packages/create-astro/test/create-astro.test.js +++ b/packages/create-astro/test/create-astro.test.js @@ -1,15 +1,11 @@ import fs from 'fs'; import path from 'path'; -import { fileURLToPath } from 'url'; import http from 'http'; import { green, red } from 'kleur/colors'; import execa from 'execa'; import glob from 'tiny-glob'; import { TEMPLATES } from '../dist/templates.js'; - -// config -const GITHUB_SHA = process.env.GITHUB_SHA || execa.sync('git', ['rev-parse', 'HEAD']).stdout; // process.env.GITHUB_SHA will be set in CI; if testing locally execa() will gather this -const FIXTURES_DIR = path.join(fileURLToPath(path.dirname(import.meta.url)), 'fixtures'); +import { GITHUB_SHA, FIXTURES_DIR } from './helpers.js'; // helpers async function fetch(url) { diff --git a/packages/create-astro/test/external.test.js b/packages/create-astro/test/external.test.js new file mode 100644 index 000000000..9fac8c202 --- /dev/null +++ b/packages/create-astro/test/external.test.js @@ -0,0 +1,29 @@ +import assert from 'assert'; +import execa from 'execa'; +import { FIXTURES_URL } from './helpers.js'; +import { existsSync } from 'fs'; + +async function run(outdir, template) { + //--template cassidoo/shopify-react-astro + await execa('../../create-astro.mjs', [outdir, '--template', template, '--force-overwrite'], { + cwd: FIXTURES_URL.pathname, + }); +} + +const testCases = [ + ['shopify', 'cassidoo/shopify-react-astro'] +]; + +async function tests() { + for(let [dir, tmpl] of testCases) { + await run(dir, tmpl); + + const outPath = new URL('' + dir, FIXTURES_URL); + assert.ok(existsSync(outPath)); + } +} + +tests().catch(err => { + console.error(err); + process.exit(1); +});
\ No newline at end of file diff --git a/packages/create-astro/test/helpers.js b/packages/create-astro/test/helpers.js new file mode 100644 index 000000000..295f9c650 --- /dev/null +++ b/packages/create-astro/test/helpers.js @@ -0,0 +1,13 @@ +import execa from 'execa'; +import path from 'path'; +import { fileURLToPath, pathToFileURL } from 'url'; + +const GITHUB_SHA = process.env.GITHUB_SHA || execa.sync('git', ['rev-parse', 'HEAD']).stdout; // process.env.GITHUB_SHA will be set in CI; if testing locally execa() will gather this +const FIXTURES_DIR = path.join(fileURLToPath(path.dirname(import.meta.url)), 'fixtures'); +const FIXTURES_URL = pathToFileURL(FIXTURES_DIR + '/'); + +export { + GITHUB_SHA, + FIXTURES_DIR, + FIXTURES_URL +};
\ No newline at end of file |