Skip to content
Closed
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
10 changes: 8 additions & 2 deletions packages/cli/cli-logger/src/logErrorMessage.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { Logger, LogLevel } from "@fern-api/logger";
import { FernCliError } from "@fern-api/task-context";
import { TaskAbortSignal } from "@fern-api/task-context";
import chalk from "chalk";

const USE_NODE_18_OR_ABOVE_MESSAGE = "The Fern CLI requires Node 18+ or above.";

export function logErrorMessage({
message,
error,
Expand All @@ -20,7 +22,7 @@ export function logErrorMessage({
}

// thrower is responsible for logging, so we don't need to log the error's message too
if (error instanceof FernCliError) {
if (error instanceof TaskAbortSignal) {
return;
}

Expand All @@ -42,6 +44,10 @@ function convertErrorToString(error: unknown): string | undefined {
return error;
}
if (error instanceof Error) {
if ((error as Error)?.message?.includes("globalThis")) {
return USE_NODE_18_OR_ABOVE_MESSAGE;
}

return error.message;
}
return undefined;
Expand Down
14 changes: 7 additions & 7 deletions packages/cli/cli-v2/src/__test__/ApiChecker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ describe("ApiChecker", () => {
}

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand All @@ -53,7 +53,7 @@ describe("ApiChecker", () => {
}

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand All @@ -71,7 +71,7 @@ describe("ApiChecker", () => {
const workspace = await loadWorkspace("simple-api");

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand All @@ -89,7 +89,7 @@ describe("ApiChecker", () => {
const workspace = await loadWorkspace("simple-api");

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand All @@ -110,7 +110,7 @@ describe("ApiChecker", () => {
const workspace = await loadWorkspace("simple-api");

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand All @@ -128,7 +128,7 @@ describe("ApiChecker", () => {
const workspace = await loadWorkspace("simple-api");

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand All @@ -146,7 +146,7 @@ describe("ApiChecker", () => {
const workspace = await loadWorkspace("simple-api");

const checker = new ApiChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
cliVersion: "0.0.0"
});

Expand Down
10 changes: 5 additions & 5 deletions packages/cli/cli-v2/src/__test__/DocsChecker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ describe("DocsChecker", () => {
const cwd = AbsoluteFilePath.of(join(__dirname, "fixtures/simple-api"));

const checker = new DocsChecker({
context: createTestContext({ cwd })
context: await createTestContext({ cwd })
});

const result = await checker.check({ workspace });
Expand All @@ -49,7 +49,7 @@ describe("DocsChecker", () => {

const workspace = await loadTempWorkspace(testDir);
const checker = new DocsChecker({
context: createTestContext({ cwd: testDir })
context: await createTestContext({ cwd: testDir })
});

const result = await checker.check({ workspace });
Expand All @@ -69,7 +69,7 @@ describe("DocsChecker", () => {

const workspace = await loadTempWorkspace(testDir);
const checker = new DocsChecker({
context: createTestContext({ cwd: testDir })
context: await createTestContext({ cwd: testDir })
});

const result = await checker.check({ workspace });
Expand All @@ -84,7 +84,7 @@ describe("DocsChecker", () => {

const workspace = await loadTempWorkspace(testDir);
const checker = new DocsChecker({
context: createTestContext({ cwd: testDir })
context: await createTestContext({ cwd: testDir })
});

const resultStrict = await checker.check({ workspace, strict: true });
Expand Down Expand Up @@ -133,7 +133,7 @@ docs:

const workspace = await loadTempWorkspace(testDir);
const checker = new DocsChecker({
context: createTestContext({ cwd: testDir })
context: await createTestContext({ cwd: testDir })
});

const result = await checker.check({ workspace, strict: true });
Expand Down
12 changes: 9 additions & 3 deletions packages/cli/cli-v2/src/__test__/LegacyApiSpecAdapter.test.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
import type { OpenAPISpec, OpenRPCSpec } from "@fern-api/api-workspace-commons";
import { generatorsYml } from "@fern-api/configuration";
import { AbsoluteFilePath } from "@fern-api/fs-utils";
import { describe, expect, it } from "vitest";
import { beforeEach, describe, expect, it } from "vitest";
import { LegacyApiSpecAdapter } from "../api/adapter/LegacyApiSpecAdapter.js";
import type { AsyncApiSpec } from "../api/config/AsyncApiSpec.js";
import type { OpenApiSpec } from "../api/config/OpenApiSpec.js";
import type { OpenRpcSpec } from "../api/config/OpenRpcSpec.js";
import type { Context } from "../context/Context.js";
import { createTestContext } from "./utils/createTestContext.js";

describe("LegacyApiSpecAdapter", () => {
const cwd = AbsoluteFilePath.of("/test/path");
const context = createTestContext({ cwd });
const adapter = new LegacyApiSpecAdapter({ context });
let context: Context;
let adapter: LegacyApiSpecAdapter;

beforeEach(async () => {
context = await createTestContext({ cwd });
adapter = new LegacyApiSpecAdapter({ context });
});

describe("convertOpenApiSettings", () => {
it("returns undefined when settings are not provided", () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ describe("LegacyFernWorkspaceAdapter", () => {

it("adapts Fern spec to FernWorkspace using LazyFernWorkspace", async () => {
const { cwd, apiDefinition } = await loadApiDefinition("fern-definition");
const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);

const fernWorkspace = await adapter.adapt(apiDefinition);
expect(fernWorkspace).toBeDefined();
Expand All @@ -44,7 +44,7 @@ describe("LegacyFernWorkspaceAdapter", () => {

it("loads types and services from Fern definition files", async () => {
const { cwd, apiDefinition } = await loadApiDefinition("fern-definition");
const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);

const fernWorkspace = await adapter.adapt(apiDefinition);
const definitionFiles = fernWorkspace.definition.namedDefinitionFiles;
Expand Down Expand Up @@ -82,7 +82,7 @@ describe("LegacyFernWorkspaceAdapter", () => {
expect(isOpenApiSpec(firstSpec)).toBe(true);
}

const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);
const fernWorkspace = await adapter.adapt(apiDefinition);
expect(fernWorkspace).toBeDefined();
expect(fernWorkspace.definition).toBeDefined();
Expand All @@ -103,7 +103,7 @@ describe("LegacyFernWorkspaceAdapter", () => {

it("adapts Conjure spec to FernWorkspace using ConjureWorkspace", async () => {
const { cwd, apiDefinition } = await loadApiDefinition("conjure-definition");
const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);

const fernWorkspace = await adapter.adapt(apiDefinition);
expect(fernWorkspace).toBeDefined();
Expand All @@ -120,7 +120,7 @@ describe("LegacyFernWorkspaceAdapter", () => {
expect(spec.conjure.toString()).toContain("conjure-definition/conjure");
}

const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);
const fernWorkspace = await adapter.adapt(apiDefinition);
expect(fernWorkspace).toBeDefined();
expect(fernWorkspace.absoluteFilePath.toString()).toBe(cwd.toString());
Expand All @@ -130,7 +130,7 @@ describe("LegacyFernWorkspaceAdapter", () => {
describe("Multiple OpenAPI Specs", () => {
it("allows multiple OpenAPI specs to be mixed together", async () => {
const cwd = AbsoluteFilePath.of(join(FIXTURES_DIR, "simple-api"));
const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);

const openApiSpec1: OpenApiSpec = {
openapi: AbsoluteFilePath.of(join(FIXTURES_DIR, "simple-api", "openapi.yml"))
Expand Down Expand Up @@ -173,7 +173,7 @@ describe("LegacyFernWorkspaceAdapter", () => {

it("override auth scheme", async () => {
const { cwd, apiDefinition } = await loadApiDefinition("api-config-override");
const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);

const fernWorkspace = await adapter.adapt(apiDefinition);
expect(fernWorkspace).toBeDefined();
Expand All @@ -186,7 +186,7 @@ describe("LegacyFernWorkspaceAdapter", () => {

it("override environments", async () => {
const { cwd, apiDefinition } = await loadApiDefinition("api-config-override");
const adapter = createAdapter(cwd);
const adapter = await createAdapter(cwd);

const fernWorkspace = await adapter.adapt(apiDefinition);
expect(fernWorkspace).toBeDefined();
Expand All @@ -207,8 +207,8 @@ describe("LegacyFernWorkspaceAdapter", () => {
/**
* Creates an adapter for testing with the given cwd.
*/
function createAdapter(cwd: AbsoluteFilePath): LegacyFernWorkspaceAdapter {
const context = createTestContext({ cwd });
async function createAdapter(cwd: AbsoluteFilePath): Promise<LegacyFernWorkspaceAdapter> {
const context = await createTestContext({ cwd });
const task = createMockTask();
return new LegacyFernWorkspaceAdapter({
context,
Expand Down
18 changes: 9 additions & 9 deletions packages/cli/cli-v2/src/__test__/SdkChecker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe("SdkChecker", () => {
const workspace = await loadWorkspace("simple-api");

const checker = new SdkChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand All @@ -61,7 +61,7 @@ api:
const workspace = await loadTempWorkspace(testDir);

const checker = new SdkChecker({
context: createTestContext({ cwd: testDir }),
context: await createTestContext({ cwd: testDir }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand Down Expand Up @@ -98,7 +98,7 @@ sdks:

const workspace = await loadTempWorkspace(testDir);
const checker = new SdkChecker({
context: createTestContext({ cwd: testDir }),
context: await createTestContext({ cwd: testDir }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand All @@ -113,7 +113,7 @@ sdks:
const workspace = await loadWorkspace("simple-api");

const checker = new SdkChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand Down Expand Up @@ -146,7 +146,7 @@ sdks:

const workspace = await loadTempWorkspace(testDir);
const checker = new SdkChecker({
context: createTestContext({ cwd: testDir }),
context: await createTestContext({ cwd: testDir }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand All @@ -163,7 +163,7 @@ sdks:
const workspace = await loadWorkspace("simple-api");

const checker = new SdkChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand Down Expand Up @@ -198,7 +198,7 @@ sdks:

const workspace = await loadTempWorkspace(testDir);
const checker = new SdkChecker({
context: createTestContext({ cwd: testDir }),
context: await createTestContext({ cwd: testDir }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand All @@ -213,7 +213,7 @@ sdks:
const workspace = await loadWorkspace("simple-api");

const checker = new SdkChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
versionChecker: NOOP_VERSION_CHECKER
});

Expand All @@ -229,7 +229,7 @@ sdks:
const workspace = await loadWorkspace("simple-api");

const checker = new SdkChecker({
context: createTestContext({ cwd }),
context: await createTestContext({ cwd }),
versionChecker: async ({ target }) => ({
violation: {
severity: "warning",
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/cli-v2/src/__test__/check.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ paths: {}
`
);

const { context, getStdout, getStderr } = createTestContextWithCapture({ cwd: testDir });
const { context, getStdout, getStderr } = await createTestContextWithCapture({ cwd: testDir });
const cmd = new CheckCommand();

// The sdk checker will find the defaultGroup violation, which causes an error exit.
Expand Down Expand Up @@ -129,7 +129,7 @@ paths: {}
`
);

const { context, getStdout, getStderr } = createTestContextWithCapture({ cwd: testDir });
const { context, getStdout, getStderr } = await createTestContextWithCapture({ cwd: testDir });
const cmd = new SdkCheckCommand();

try {
Expand Down
Loading
Loading