summaryrefslogtreecommitdiff
path: root/packages/create-astro/test/directory-step.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/create-astro/test/directory-step.test.js')
-rw-r--r--packages/create-astro/test/directory-step.test.js23
1 files changed, 16 insertions, 7 deletions
diff --git a/packages/create-astro/test/directory-step.test.js b/packages/create-astro/test/directory-step.test.js
index 0031f97fd..26737ca94 100644
--- a/packages/create-astro/test/directory-step.test.js
+++ b/packages/create-astro/test/directory-step.test.js
@@ -1,6 +1,8 @@
import path from 'path';
import { promises, existsSync } from 'fs';
-import { PROMPT_MESSAGES, testDir, setup, promiseWithTimeout, timeout } from './utils.js';
+import {
+ PROMPT_MESSAGES, testDir, setup, promiseWithTimeout, timeout
+} from './utils.js';
const inputs = {
nonEmptyDir: './fixtures/select-directory/nonempty-dir',
@@ -12,9 +14,10 @@ const inputs = {
describe('[create-astro] select directory', function () {
this.timeout(timeout);
it('should prompt for directory when none is provided', function () {
- return promiseWithTimeout((resolve) => {
+ return promiseWithTimeout((resolve, onStdout) => {
const { stdout } = setup();
stdout.on('data', (chunk) => {
+ onStdout(chunk);
if (chunk.includes(PROMPT_MESSAGES.directory)) {
resolve();
}
@@ -22,9 +25,10 @@ describe('[create-astro] select directory', function () {
});
});
it('should NOT proceed on a non-empty directory', function () {
- return promiseWithTimeout((resolve) => {
+ return promiseWithTimeout((resolve, onStdout) => {
const { stdout } = setup([inputs.nonEmptyDir]);
stdout.on('data', (chunk) => {
+ onStdout(chunk);
if (chunk.includes(PROMPT_MESSAGES.directory)) {
resolve();
}
@@ -46,9 +50,10 @@ describe('[create-astro] select directory', function () {
if (!existsSync(resolvedEmptyDirPath)) {
await promises.mkdir(resolvedEmptyDirPath);
}
- return promiseWithTimeout((resolve) => {
+ return promiseWithTimeout((resolve, onStdout) => {
const { stdout } = setup([inputs.emptyDir]);
stdout.on('data', (chunk) => {
+ onStdout(chunk);
if (chunk.includes(PROMPT_MESSAGES.template)) {
resolve();
}
@@ -56,9 +61,10 @@ describe('[create-astro] select directory', function () {
});
});
it('should proceed when directory does not exist', function () {
- return promiseWithTimeout((resolve) => {
+ return promiseWithTimeout((resolve, onStdout) => {
const { stdout } = setup([inputs.nonexistentDir]);
stdout.on('data', (chunk) => {
+ onStdout(chunk);
if (chunk.includes(PROMPT_MESSAGES.template)) {
resolve();
}
@@ -66,14 +72,17 @@ describe('[create-astro] select directory', function () {
});
});
it('should error on bad directory selection in prompt', function () {
- return promiseWithTimeout((resolve) => {
+ return promiseWithTimeout((resolve, onStdout) => {
+ let wrote = false;
const { stdout, stdin } = setup();
stdout.on('data', (chunk) => {
+ onStdout(chunk);
if (chunk.includes('is not empty!')) {
resolve();
}
- if (chunk.includes(PROMPT_MESSAGES.directory)) {
+ if (!wrote && chunk.includes(PROMPT_MESSAGES.directory)) {
stdin.write(`${inputs.nonEmptyDir}\x0D`);
+ wrote = true;
}
});
});