Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions packages/cli/test/agent-extensions.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { execFile } from "node:child_process";
import { mkdtemp, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { buildInvocation } from "../src/util/invocation";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

async function runCli(
args: string[]
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/anonymous-flag.test.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { execFile } from "node:child_process";
import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

async function runCli(
args: string[],
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/check-gitignore.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ import {
} from "../src/rules/git-ignored";
import { findValeBinary } from "../src/rules/vale/binary";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();
const fixturesDirectory = resolve(
import.meta.dirname,
"fixtures/mixed-engines-project"
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/check-rule-filter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ import { splitRawArguments } from "../src/util/argv";
import { sgFilterArgv } from "../src/rules/scan";
import { findValeBinary } from "../src/rules/vale/binary";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();
const fixturesDirectory = resolve(
import.meta.dirname,
"fixtures/mixed-engines-project"
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/check.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ import { tmpdir } from "node:os";
import { promisify } from "node:util";
import { describe, expect, it, beforeEach, afterEach } from "vitest";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();
const fixturesDirectory = resolve(
import.meta.dirname,
"fixtures/taskless-project"
Expand Down
6 changes: 4 additions & 2 deletions packages/cli/test/cli.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { execFile } from "node:child_process";
import { readFile, mkdtemp, rm, mkdir } from "node:fs/promises";
import { resolve, join } from "node:path";
import { join } from "node:path";
import { tmpdir } from "node:os";
import { promisify } from "node:util";
import { describe, expect, it, beforeEach, afterEach } from "vitest";

import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

describe("cli", () => {
it("has a shebang in the built output", async () => {
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/demo-command.test.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import { execFile } from "node:child_process";
import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";

import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { DEMO_RULES, demoRuleFor } from "../src/rules/demo/rule";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

/**
* The demonstration rules, end to end over the built CLI.
Expand Down
6 changes: 4 additions & 2 deletions packages/cli/test/detect.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { execFile } from "node:child_process";
import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

interface ExecError extends Error {
stdout?: string;
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/engine-dispatch.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
} from "node:fs/promises";
import { existsSync } from "node:fs";
import { tmpdir } from "node:os";
import { dirname, join, resolve } from "node:path";
import { dirname, join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";

Expand All @@ -27,9 +27,10 @@ import { discoverRuntimeRules } from "../src/rules/runtime/discover";
import type { ServedFileSet } from "../src/api/v2";
import { CLIError } from "../src/util/cli-error";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

const NO_EVAL_RULE = [
"id: no-eval",
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/error-envelope.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import { execFile } from "node:child_process";
import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
import { existsSync } from "node:fs";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { resolveActingOrg } from "../src/auth/org";
import { cliRejectionToResult } from "./support/spawn-cli";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

interface ErrorEnvelope {
ok: false;
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/example-project.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { findValeBinary } from "../src/rules/vale/binary";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

/** `<repo>/example` — the committed demo project. */
const exampleSource = resolve(import.meta.dirname, "../../../example");
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/feedback-command.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { execFile } from "node:child_process";
import { mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";

import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

import { readNextAsk } from "../src/survey/cadence";
import { ANSWERED_INTERVAL_MS, SURVEY_ID } from "../src/survey/constants";
import { CLIError } from "../src/util/cli-error";
import { builtCli } from "./support/built-cli";

// Spy on telemetry by mocking the module the command imports, the same way
// agent-telemetry.test.ts does. `enabled` is flipped per test to exercise the
Expand Down Expand Up @@ -242,7 +243,7 @@ describe("feedback command", () => {

describe("feedback in the built CLI", () => {
const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

it("is absent from the agent index", async () => {
const { stdout } = await execFileAsync("node", [binPath, "agent"]);
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/feedback-recipes.test.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { execFile } from "node:child_process";
import { resolve } from "node:path";
import { promisify } from "node:util";

import { describe, expect, it } from "vitest";

import { getRecipe } from "../src/prompts/recipes";
import { inputSchema } from "../src/schemas/feedback";
import { COMPLETED_CHOICES } from "../src/survey/constants";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();
const invocation = "npx @taskless/cli";

/** The sentence the invite puts to the user, as the design fixed it. */
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/help-flag.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { execFile } from "node:child_process";
import { mkdtemp, readdir, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

Expand All @@ -10,9 +10,10 @@ import {
joinDirectoryValues,
splitRawArguments,
} from "../src/util/argv";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

describe("--help below the root", () => {
let temporaryDirectory: string;
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/info.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ import { join, resolve } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { LATEST_SCHEMA_VERSION } from "../src/filesystem/migrate";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();
const agentRecipeDirectory = resolve(import.meta.dirname, "../src/agent");

interface ExecError extends Error {
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/init-no-interactive.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ import {
writeFile,
} from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { LATEST_SCHEMA_VERSION } from "../src/filesystem/migrate";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

async function exists(path: string): Promise<boolean> {
try {
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/layout.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ import {
RULE_TESTS_DIRECTORY,
isKnownEngine,
} from "../src/layout/index.js";
import { builtDirectory } from "./support/built-cli";

const distributionDirectory = resolve(import.meta.dirname, "../dist");
const distributionDirectory = builtDirectory();
const distributionLayoutPath = resolve(distributionDirectory, "layout.js");

/**
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/migrate-round-trip.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import { execFile } from "node:child_process";
import { createHash } from "node:crypto";
import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { findValeBinary } from "../src/rules/vale/binary";
import { builtCli } from "./support/built-cli";
import { migrateFixture } from "./support/current-project";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

const withVale = findValeBinary().path === undefined ? describe.skip : describe;

Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/migrated-envelope.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ import {
writeFile,
} from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { LATEST_SCHEMA_VERSION } from "../src/filesystem/migrate";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

interface MigratedField {
from: number;
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/migration-failure.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { execFile } from "node:child_process";
import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { cliRejectionToResult } from "./support/spawn-cli";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

/**
* These spawn the BUILT CLI rather than calling `runMigrations` directly, and
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/mixed-engine-check.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { findValeBinary } from "../src/rules/vale/binary";
import { migrateFixture } from "./support/current-project";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();
const fixturesDirectory = resolve(
import.meta.dirname,
"fixtures/mixed-engines-project"
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/no-implicit-migration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ import {
writeFile,
} from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";

import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { LATEST_SCHEMA_VERSION } from "../src/filesystem/migrate";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

/**
* A command that reports must not rewrite the repository.
Expand Down
5 changes: 3 additions & 2 deletions packages/cli/test/onboard.test.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { execFile } from "node:child_process";
import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join, resolve } from "node:path";
import { join } from "node:path";
import { promisify } from "node:util";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { LATEST_SCHEMA_VERSION } from "../src/filesystem/migrate";
import { builtCli } from "./support/built-cli";

const execFileAsync = promisify(execFile);
const binPath = resolve(import.meta.dirname, "../dist/index.js");
const binPath = builtCli();

interface ExecError extends Error {
stdout?: string;
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/test/prompts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ import {
getRecipe,
getRenderedRecipe,
} from "../src/prompts/recipes";
import { builtDirectory } from "./support/built-cli";

const execFileAsync = promisify(execFile);

const recipeDirectory = resolve(import.meta.dirname, "../src/agent");
const distributionDirectory = resolve(import.meta.dirname, "../dist");
const distributionDirectory = builtDirectory();
const binPath = resolve(distributionDirectory, "index.js");
const distributionPromptsPath = resolve(distributionDirectory, "prompts.js");

Expand Down
Loading
Loading