summaryrefslogtreecommitdiff
path: root/packages/create-astro/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--packages/create-astro/test/create-astro.test.js6
-rw-r--r--packages/create-astro/test/external.test.js29
-rw-r--r--packages/create-astro/test/helpers.js13
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