diff --git a/README.md b/README.md index d5faed5..9a878e0 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ This way even entityIds like environmentIds or testCaseIds will be autocompleted # octomind -Octomind cli tool. Version: 4.5.0. Additional documentation see https://octomind.dev/docs/api-reference/ +Octomind cli tool. Version: 4.5.1. Additional documentation see https://octomind.dev/docs/api-reference/ **Usage:** `octomind [options] [command]` diff --git a/package.json b/package.json index 03752a7..68f7a96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@octomind/octomind", - "version": "4.5.0", + "version": "4.5.1", "description": "a command line client for octomind apis", "main": "./dist/index.js", "packageManager": "pnpm@10.28.1+sha512.7d7dbbca9e99447b7c3bf7a73286afaaf6be99251eb9498baefa7d406892f67b879adb3a1d7e687fc4ccc1a388c7175fbaae567a26ab44d1067b54fcb0d6a316", @@ -26,9 +26,9 @@ "lint": "pnpm apigen && npx genversion -des src/version.ts && biome check", "tsc": "tsc --project tsconfig.build.json", "typecheck": "tsc --project tsconfig.build.json --noEmit", - "dev:local": "pnpm apigen && OCTOMIND_CONFIG_FILE=octomind.dev.local.json OCTOMIND_API_URL=http://localhost:3000/api tsx src/index.ts", - "dev:staging": "pnpm apigen && OCTOMIND_CONFIG_FILE=octomind.dev.staging.json OCTOMIND_API_URL=https://preview.octomind.dev/api tsx src/index.ts", - "dev:prod": "pnpm apigen && OCTOMIND_CONFIG_FILE=octomind.dev.prod.json OCTOMIND_API_URL=https://app.octomind.dev/api tsx src/index.ts", + "dev:local": "pnpm apigen && OCTOMIND_CONFIG_FILE=octomind.dev.local.json OCTOMIND_API_URL=http://localhost:3000 tsx src/index.ts", + "dev:staging": "pnpm apigen && OCTOMIND_CONFIG_FILE=octomind.dev.staging.json OCTOMIND_API_URL=https://preview.octomind.dev tsx src/index.ts", + "dev:prod": "pnpm apigen && OCTOMIND_CONFIG_FILE=octomind.dev.prod.json OCTOMIND_API_URL=https://app.octomind.dev tsx src/index.ts", "apigen": "openapi-typescript https://preview.octomind.dev/openapi.yaml --output src/api.ts && orval", "build": "pnpm apigen && npx genversion -des src/version.ts && pnpm gendoc && tsc --project tsconfig.build.json", "octomind": "pnpm apigen && tsx src/index.ts", diff --git a/src/tools/client.ts b/src/tools/client.ts index 2c2ad33..7ed1034 100644 --- a/src/tools/client.ts +++ b/src/tools/client.ts @@ -6,7 +6,7 @@ import { logger } from "../logger"; import { version } from "../version"; export const BASE_URL = - process.env.OCTOMIND_API_URL || "https://app.octomind.dev/api"; + process.env.OCTOMIND_API_URL || "https://app.octomind.dev"; type ErrorResponse = | components["schemas"]["ZodResponse"] | string @@ -14,7 +14,9 @@ type ErrorResponse = | { status: "has dependencies"; dependencyIds: string[] } | undefined; -const client: Client = createClient({ baseUrl: BASE_URL }); +const client: Client = createClient({ + baseUrl: `${BASE_URL}/api`, +}); export const createClientFromUrlAndApiKey = ({ baseUrl, diff --git a/src/tools/environments.ts b/src/tools/environments.ts index a5969f1..ce60cfe 100644 --- a/src/tools/environments.ts +++ b/src/tools/environments.ts @@ -44,7 +44,7 @@ export const getEnvironments = async ( if (options.bearerToken) { logger.debug("Using bearer token for environments"); const res = await fetch( - `${BASE_URL}/bearer/v1/test-targets/${options.testTargetId}/environments`, + `${BASE_URL}/api/bearer/v1/test-targets/${options.testTargetId}/environments`, { headers: { Authorization: `Bearer ${options.bearerToken}`, diff --git a/src/tools/playwright.ts b/src/tools/playwright.ts index ee021b8..dd02636 100644 --- a/src/tools/playwright.ts +++ b/src/tools/playwright.ts @@ -31,7 +31,7 @@ export const getPlaywrightConfig = async (options: { const searchParams = new URLSearchParams(filteredParams); const response = await fetch( - `${BASE_URL}/bearer/v1/test-targets/${options.testTargetId}/config?${searchParams.toString()}`, + `${BASE_URL}/api/bearer/v1/test-targets/${options.testTargetId}/config?${searchParams.toString()}`, { headers: { Authorization: `Bearer ${options.bearerToken}`, @@ -99,7 +99,7 @@ export const getPlaywrightCode = async (options: { const searchParams = new URLSearchParams(filteredParams); const response = await fetch( - `${BASE_URL}/bearer/v1/test-targets/${options.testTargetId}/test-cases/${options.testCaseId}/code?${searchParams.toString()}`, + `${BASE_URL}/api/bearer/v1/test-targets/${options.testTargetId}/test-cases/${options.testCaseId}/code?${searchParams.toString()}`, { headers: { Authorization: `Bearer ${options.bearerToken}`, diff --git a/src/tools/test-cases.ts b/src/tools/test-cases.ts index b5f670c..92eebe4 100644 --- a/src/tools/test-cases.ts +++ b/src/tools/test-cases.ts @@ -128,7 +128,7 @@ export const getTestCases = async ( ): Promise => { if (options.bearerToken) { const url = new URL( - `${BASE_URL}/bearer/v1/test-targets/${options.testTargetId}/test-cases`, + `${BASE_URL}/api/bearer/v1/test-targets/${options.testTargetId}/test-cases`, ); if (options.status || options.runStatus) { url.searchParams.set( diff --git a/src/tools/yamlMutations/create.ts b/src/tools/yamlMutations/create.ts index 946d268..d23e80a 100644 --- a/src/tools/yamlMutations/create.ts +++ b/src/tools/yamlMutations/create.ts @@ -69,9 +69,8 @@ const openBrowser = async ({ versionId: string; testTargetId: string; }): Promise => { - const parsedBaseUrl = URL.parse(BASE_URL); const localEditingUrl = new URL( - `${parsedBaseUrl?.protocol}//${parsedBaseUrl?.host}/testtargets/${testTargetId}/testcases/${versionId}/localEdit`, + `${BASE_URL}/testtargets/${testTargetId}/testcases/${versionId}/localEdit`, ); await open(localEditingUrl.href); diff --git a/src/tools/yamlMutations/edit.ts b/src/tools/yamlMutations/edit.ts index fe8a00c..258be88 100644 --- a/src/tools/yamlMutations/edit.ts +++ b/src/tools/yamlMutations/edit.ts @@ -75,9 +75,8 @@ export const edit = async (options: EditOptions): Promise => { } const { versionId, testResultId } = syncData; - const parsedBaseUrl = URL.parse(BASE_URL); const localEditingUrl = new URL( - `${parsedBaseUrl?.protocol}//${parsedBaseUrl?.host}/testtargets/${options.testTargetId}/testcases/${versionId}/localEdit`, + `${BASE_URL}/testtargets/${options.testTargetId}/testcases/${versionId}/localEdit`, ); if (testResultId) { localEditingUrl.searchParams.set("testResultId", testResultId); diff --git a/src/url.ts b/src/url.ts index cf04b88..bc50d27 100644 --- a/src/url.ts +++ b/src/url.ts @@ -14,7 +14,6 @@ export const getUrl = async ( | { testCaseId: string; entityType: "discovery" } | { batchGenerationId: string; entityType: "batch-generation" }, ): Promise => { - const relevantBaseUrl = new URL(BASE_URL).origin; const config = await loadConfig(); const configuredTestTargetId = config.testTargetId; if (!configuredTestTargetId && input.entityType !== "test-target") { @@ -22,16 +21,16 @@ export const getUrl = async ( } switch (input.entityType) { case "test-case": - return `${relevantBaseUrl}/testtargets/${configuredTestTargetId}/testcases?testCaseId=${input.testCaseId}`; + return `${BASE_URL}/testtargets/${configuredTestTargetId}/testcases?testCaseId=${input.testCaseId}`; case "test-target": - return `${relevantBaseUrl}/testtargets/${input.testTargetId}`; + return `${BASE_URL}/testtargets/${input.testTargetId}`; case "test-report": - return `${relevantBaseUrl}/testtargets/${configuredTestTargetId}/testreports/${input.testReportId}`; + return `${BASE_URL}/testtargets/${configuredTestTargetId}/testreports/${input.testReportId}`; case "test-result": - return `${relevantBaseUrl}/testtargets/${configuredTestTargetId}/testreports/${input.testReportId}/testresults/${input.testResultId}`; + return `${BASE_URL}/testtargets/${configuredTestTargetId}/testreports/${input.testReportId}/testresults/${input.testResultId}`; case "discovery": - return `${relevantBaseUrl}/testtargets/${configuredTestTargetId}/testcases/${input.testCaseId}`; + return `${BASE_URL}/testtargets/${configuredTestTargetId}/testcases/${input.testCaseId}`; case "batch-generation": - return `${relevantBaseUrl}/testtargets/${configuredTestTargetId}/batch-generations/${input.batchGenerationId}`; + return `${BASE_URL}/testtargets/${configuredTestTargetId}/batch-generations/${input.batchGenerationId}`; } }; diff --git a/tests/tools/environments.spec.ts b/tests/tools/environments.spec.ts index e36b7ad..5215ad6 100644 --- a/tests/tools/environments.spec.ts +++ b/tests/tools/environments.spec.ts @@ -51,7 +51,7 @@ describe("environments", () => { const result = await getEnvironments(options); expect(fetch).toHaveBeenCalledWith( - `${BASE_URL}/bearer/v1/test-targets/${testTargetId}/environments`, + `${BASE_URL}/api/bearer/v1/test-targets/${testTargetId}/environments`, { headers: { Authorization: `Bearer ${bearerToken}`, diff --git a/tests/tools/playwright.spec.ts b/tests/tools/playwright.spec.ts index 2c50bea..d7de602 100644 --- a/tests/tools/playwright.spec.ts +++ b/tests/tools/playwright.spec.ts @@ -86,7 +86,7 @@ describe("playwright", () => { }); expect(fetch).toHaveBeenCalledWith( - `${BASE_URL}/bearer/v1/test-targets/${testTargetId}/config?${expectedParams.toString()}`, + `${BASE_URL}/api/bearer/v1/test-targets/${testTargetId}/config?${expectedParams.toString()}`, { headers: { Authorization: `Bearer ${bearerToken}`, @@ -179,7 +179,7 @@ describe("playwright", () => { }); expect(fetch).toHaveBeenCalledWith( - `${BASE_URL}/bearer/v1/test-targets/${testTargetId}/test-cases/${testCaseId}/code?${expectedParams.toString()}`, + `${BASE_URL}/api/bearer/v1/test-targets/${testTargetId}/test-cases/${testCaseId}/code?${expectedParams.toString()}`, { headers: { Authorization: `Bearer ${bearerToken}`,