UNPKG

@pipedream/testmo

Version:

Pipedream Testmo Components

114 lines (110 loc) 3.66 kB
import { parseArray } from "../../common/utils.mjs"; import testmo from "../../testmo.app.mjs"; export default { key: "testmo-create-automation-run", name: "Create Automation Run", version: "0.0.2", description: "Creates a new automation run in a target project in preparation for adding threads and test results. [See the documentation](https://docs.testmo.com/api/reference/automation-runs#post-projects-project_id-automation-runs)", type: "action", props: { testmo, projectId: { propDefinition: [ testmo, "projectId", ], }, name: { type: "string", label: "Name", description: "Name of the new automation run.", }, source: { propDefinition: [ testmo, "source", ({ projectId }) => ({ projectId, }), ], }, config: { type: "string", label: "Config", description: "Name of the configuration for the new automation run.", optional: true, }, configId: { type: "string", label: "Config Id", description: "ID of the configuration for the new automation run. If both config and `configId` are specified, `configId` is given precedence.", optional: true, }, milestone: { type: "string", label: "Milestone", description: "Name of the milestone for the new automation run.", optional: true, }, milestoneId: { propDefinition: [ testmo, "milestoneId", ({ projectId }) => ({ projectId, }), ], optional: true, }, tags: { type: "string[]", label: "Tags", description: "List of tags for the new automation run. If a milestone in the same project has one or more matching automation tags, the new automation run is automatically linked to that milestone (unless `milestone` or `milestoneId` is also specified).", optional: true, }, artifacts: { type: "string[]", label: "Artifacts", description: "List of externally stored test artifacts to link to the new automation run (such as log files, screenshots or test data). [See de documentation for details](https://docs.testmo.com/api/reference/automation-runs#post-projects-project_id-automation-runs)", optional: true, }, fields: { type: "string[]", label: "Fields", description: "List of fields to attach to the new automation run (such as environment variables, errors or terminal output). [See de documentation for details](https://docs.testmo.com/api/reference/automation-runs#post-projects-project_id-automation-runs)", optional: true, }, links: { type: "string[]", label: "Links", description: "List of links to attach to the new automation run (such as a link back to the build in the CI tool that triggered the tests). [See de documentation for details](https://docs.testmo.com/api/reference/automation-runs#post-projects-project_id-automation-runs)", optional: true, }, }, async run({ $ }) { const { testmo, projectId, configId, milestoneId, artifacts, fields, links, ...data } = this; const response = await testmo.createAutomationRun({ $, projectId, data: { config_id: configId, milestone_id: milestoneId, artifacts: parseArray(artifacts), fields: parseArray(fields), links: parseArray(links), ...data, }, }); $.export("$summary", `A new automation run with Id: ${response.id} was successfully created!`); return response; }, };