{"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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"}