UNPKG

@gentrace/core

Version:
1 lines 12.7 kB
{"version":3,"file":"test-case.mjs","sources":["test-case.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { globalGentraceApi, globalGentraceApiV2 } from \"./init\";\nimport { getPipelines } from \"./pipeline-methods\";\nfunction isTestCaseSingle(response) {\n return response.caseId !== undefined;\n}\nfunction isUUID(str) {\n const uuidPattern = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;\n return uuidPattern.test(str);\n}\n/**\n * Retrieves test cases for a given pipeline from the Gentrace API.\n * @async\n * @param {string} pipelineSlug - The slug of the pipeline to filter test cases by.\n * @returns {Promise<Array<TestCase>>} - A promise that resolves to an array of test cases.\n * @throws {Error} - Throws an error if the Gentrace API key is not initialized or if the pipeline is not found.\n * @remarks The golden dataset for the specified pipeline will be used.\n */\nexport const getTestCases = (pipelineSlug) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n if (!globalGentraceApi) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n if (!pipelineSlug) {\n throw new Error(\"pipelineSlug must be defined.\");\n }\n let pipelineId;\n if (!isUUID(pipelineSlug)) {\n const allPipelines = yield getPipelines();\n const matchingPipeline = allPipelines.find((pipeline) => pipeline.slug === pipelineSlug);\n if (!matchingPipeline) {\n throw new Error(`Could not find the specified pipeline (${pipelineSlug})`);\n }\n pipelineId = matchingPipeline.id;\n }\n else {\n pipelineId = pipelineSlug;\n }\n const response = yield globalGentraceApi.v1TestCaseGet(undefined, pipelineId, pipelineSlug);\n return (_a = response.data.testCases) !== null && _a !== void 0 ? _a : [];\n});\n/**\n * Retrieves test cases for a specific dataset from the Gentrace API.\n * @async\n * @param {string} datasetId - The ID of the dataset to retrieve test cases for.\n * @returns {Promise<Array<TestCase>>} - A promise that resolves to an array of test cases.\n * @throws {Error} - Throws an error if the Gentrace API key is not initialized.\n */\nexport const getTestCasesForDataset = (datasetId) => __awaiter(void 0, void 0, void 0, function* () {\n var _b;\n if (!globalGentraceApi) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n if (!datasetId) {\n throw new Error(\"datasetId must be defined.\");\n }\n const response = yield globalGentraceApi.v1TestCaseGet(datasetId);\n return (_b = response.data.testCases) !== null && _b !== void 0 ? _b : [];\n});\nexport const getTestCase = (id) => __awaiter(void 0, void 0, void 0, function* () {\n if (!globalGentraceApiV2) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n const response = yield globalGentraceApiV2.v2TestCasesIdGet(id);\n const testCase = response.data;\n return testCase;\n});\n/**\n * Creates a single test case for a given pipeline ID from the Gentrace API\n *\n * @async\n * @param {CreateSingleTestCase} payload - New test case payload\n * @throws {Error} Throws an error if the SDK is not initialized. Call init() first.\n * @returns {Promise<string>} A Promise that resolves to the created case ID\n * @remarks If a pipeline slug is specified, the golden dataset will be used.\n * If a datasetId is provided, it will be used instead.\n */\nexport const createTestCase = (payload) => __awaiter(void 0, void 0, void 0, function* () {\n if (!globalGentraceApi) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n const response = yield globalGentraceApi.v1TestCasePost(payload);\n const data = response.data;\n if (!isTestCaseSingle(data)) {\n throw new Error(\"Expected a single test case to be created.\");\n }\n return data.caseId;\n});\n/**\n * Creates multiple test cases for a given pipeline ID from the Gentrace API\n *\n * @async\n * @param {CreateMultipleTestCases} payload - New test case payloads\n * @throws {Error} Throws an error if the SDK is not initialized. Call init() first.\n * @returns {Promise<string>} A Promise that resolves to the number of test cases successfully created\n * @remarks If a pipeline slug is specified, the golden dataset will be used.\n * If a datasetId is provided, it will be used instead.\n */\nexport const createTestCases = (payload) => __awaiter(void 0, void 0, void 0, function* () {\n if (!globalGentraceApi) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n const response = yield globalGentraceApi.v1TestCasePost(payload);\n const data = response.data;\n if (isTestCaseSingle(data)) {\n throw new Error(\"Expected multiple test cases to be created.\");\n }\n return data.creationCount;\n});\n/**\n * Updates a single test case in the Gentrace API\n *\n * @async\n * @param {UpdateTestCase} payload - The payload containing the test case update information\n * @throws {Error} Throws an error if the SDK is not initialized or if the test case ID is invalid\n * @returns {Promise<string>} A Promise that resolves to the updated case ID\n * @remarks This function updates an existing test case with the provided information.\n * The payload should include the test case ID and any fields to be updated.\n */\nexport const updateTestCase = (payload) => __awaiter(void 0, void 0, void 0, function* () {\n if (!globalGentraceApi) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n const { id } = payload;\n if (!isUUID(id)) {\n throw new Error(\"Expected a valid test case ID.\");\n }\n const response = yield globalGentraceApi.v1TestCasePatch(payload);\n const data = response.data;\n return data.caseId;\n});\n/**\n * Deletes a single test case from the Gentrace API\n *\n * @async\n * @param {string} id - The ID of the test case to delete\n * @throws {Error} Throws an error if the SDK is not initialized or if the test case ID is invalid\n * @returns {Promise<boolean>} A Promise that resolves to true if the test case was successfully deleted\n * @remarks This function deletes an existing test case with the provided ID.\n */\nexport const deleteTestCase = (id) => __awaiter(void 0, void 0, void 0, function* () {\n if (!globalGentraceApiV2) {\n throw new Error(\"Gentrace API key not initialized. Call init() first.\");\n }\n if (!isUUID(id)) {\n throw new Error(\"Expected a valid test case ID.\");\n }\n const response = yield globalGentraceApiV2.v2TestCasesIdDelete(id);\n return response.data.success;\n});\n"],"names":["this"],"mappings":"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"}