airbyte-faros-destination 0.10.40 → 0.10.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Cases = void 0;
4
- const lodash_1 = require("lodash");
5
4
  const faros_js_client_1 = require("faros-js-client");
5
+ const lodash_1 = require("lodash");
6
6
  const common_1 = require("./common");
7
7
  class Cases extends common_1.TestRailsConverter {
8
8
  constructor() {
@@ -26,7 +26,7 @@ class Cases extends common_1.TestRailsConverter {
26
26
  const updateAutomationTag = !(0, lodash_1.isNil)(testCase.custom_update_automation)
27
27
  ? `update_automation:${testCase.custom_update_automation}`
28
28
  : null;
29
- const tags = [milestoneTag, automationTypeTag, updateAutomationTag].filter(tag => tag !== null);
29
+ const tags = [milestoneTag, automationTypeTag, updateAutomationTag].filter((tag) => tag !== null);
30
30
  res.push({
31
31
  model: 'qa_TestCase',
32
32
  record: {
@@ -1 +1 @@
1
- {"version":3,"file":"cases.js","sourceRoot":"","sources":["../../../src/converters/testrails/cases.ts"],"names":[],"mappings":";;;AAAA,mCAA6B;AAC7B,qDAAsC;AAKtC,qCAA4C;AAE5C,MAAa,KAAM,SAAQ,2BAAkB;IAA7C;;QACW,sBAAiB,GAAoC;YAC5D,aAAa;YACb,iCAAiC;SAClC,CAAC;IAmDJ,CAAC;IAjDC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,EAAE,CACZ,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,IAAA,cAAK,EAAC,QAAQ,CAAC,SAAS,CAAC;YAC7C,CAAC,CAAC,aAAa,QAAQ,CAAC,SAAS,EAAE;YACnC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,iBAAiB,GAAG,CAAC,IAAA,cAAK,EAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC/D,CAAC,CAAC,mBAAmB,QAAQ,CAAC,sBAAsB,EAAE;YACtD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,mBAAmB,GAAG,CAAC,IAAA,cAAK,EAAC,QAAQ,CAAC,wBAAwB,CAAC;YACnE,CAAC,CAAC,qBAAqB,QAAQ,CAAC,wBAAwB,EAAE;YAC1D,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QAEhG,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE;gBACN,GAAG;gBACH,IAAI,EAAE,QAAQ,CAAC,KAAK;gBACpB,WAAW,EAAE,uBAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1D,MAAM;gBACN,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;aACtC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,iCAAiC;YACxC,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;oBAC1D,MAAM;iBACP;gBACD,QAAQ,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC;aACxB;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAvDD,sBAuDC"}
1
+ {"version":3,"file":"cases.js","sourceRoot":"","sources":["../../../src/converters/testrails/cases.ts"],"names":[],"mappings":";;;AACA,qDAAsC;AACtC,mCAA6B;AAG7B,qCAA4C;AAE5C,MAAa,KAAM,SAAQ,2BAAkB;IAA7C;;QACW,sBAAiB,GAAoC;YAC5D,aAAa;YACb,iCAAiC;SAClC,CAAC;IAqDJ,CAAC;IAnDC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,EAAE,CACZ,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,IAAA,cAAK,EAAC,QAAQ,CAAC,SAAS,CAAC;YAC7C,CAAC,CAAC,aAAa,QAAQ,CAAC,SAAS,EAAE;YACnC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,iBAAiB,GAAG,CAAC,IAAA,cAAK,EAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC/D,CAAC,CAAC,mBAAmB,QAAQ,CAAC,sBAAsB,EAAE;YACtD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,mBAAmB,GAAG,CAAC,IAAA,cAAK,EAAC,QAAQ,CAAC,wBAAwB,CAAC;YACnE,CAAC,CAAC,qBAAqB,QAAQ,CAAC,wBAAwB,EAAE;YAC1D,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,MAAM,CACxE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CACtB,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE;gBACN,GAAG;gBACH,IAAI,EAAE,QAAQ,CAAC,KAAK;gBACpB,WAAW,EAAE,uBAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1D,MAAM;gBACN,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;aACtC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,iCAAiC;YACxC,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;oBAC1D,MAAM;iBACP;gBACD,QAAQ,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC;aACxB;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAzDD,sBAyDC"}
@@ -0,0 +1,8 @@
1
+ import { AirbyteRecord } from 'faros-airbyte-cdk';
2
+ import { Converter } from '../converter';
3
+ export declare abstract class ZephyrConverter extends Converter {
4
+ source: string;
5
+ taskSource: string;
6
+ id(record: AirbyteRecord): any;
7
+ protected labelToTag(label?: string): ReadonlyArray<string> | null;
8
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZephyrConverter = void 0;
4
+ const converter_1 = require("../converter");
5
+ class ZephyrConverter extends converter_1.Converter {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.source = 'Zephyr';
9
+ this.taskSource = 'Jira';
10
+ }
11
+ // Most Zephyr records have an id field that can be used as the record ID.
12
+ id(record) {
13
+ var _a, _b;
14
+ return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id;
15
+ }
16
+ labelToTag(label) {
17
+ return label ? [label] : null;
18
+ }
19
+ }
20
+ exports.ZephyrConverter = ZephyrConverter;
21
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/zephyr/common.ts"],"names":[],"mappings":";;;AAEA,4CAAuC;AAEvC,MAAsB,eAAgB,SAAQ,qBAAS;IAAvD;;QACE,WAAM,GAAG,QAAQ,CAAC;QAClB,eAAU,GAAG,MAAM,CAAC;IAUtB,CAAC;IARC,0EAA0E;IAC1E,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,EAAE,CAAC;IAClC,CAAC;IAES,UAAU,CAAC,KAAc;QACjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;CACF;AAZD,0CAYC"}
@@ -0,0 +1,7 @@
1
+ import { AirbyteRecord } from 'faros-airbyte-cdk';
2
+ import { DestinationModel, DestinationRecord } from '../converter';
3
+ import { ZephyrConverter } from './common';
4
+ export declare class TestCycles extends ZephyrConverter {
5
+ readonly destinationModels: ReadonlyArray<DestinationModel>;
6
+ convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
7
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestCycles = void 0;
4
+ const faros_js_client_1 = require("faros-js-client");
5
+ const lodash_1 = require("lodash");
6
+ const common_1 = require("./common");
7
+ class TestCycles extends common_1.ZephyrConverter {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.destinationModels = [
11
+ 'qa_TestSuite',
12
+ ];
13
+ }
14
+ async convert(record) {
15
+ const testCycle = record.record.data;
16
+ return [
17
+ {
18
+ model: 'qa_TestSuite',
19
+ record: {
20
+ uid: (0, lodash_1.toString)(testCycle.id),
21
+ source: this.source,
22
+ name: testCycle.name,
23
+ description: faros_js_client_1.Utils.cleanAndTruncate(testCycle.description),
24
+ tags: this.labelToTag(testCycle.label),
25
+ },
26
+ },
27
+ ];
28
+ }
29
+ }
30
+ exports.TestCycles = TestCycles;
31
+ //# sourceMappingURL=test_cycles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_cycles.js","sourceRoot":"","sources":["../../../src/converters/zephyr/test_cycles.ts"],"names":[],"mappings":";;;AACA,qDAAsC;AACtC,mCAAgC;AAGhC,qCAAyC;AAEzC,MAAa,UAAW,SAAQ,wBAAe;IAA/C;;QACW,sBAAiB,GAAoC;YAC5D,cAAc;SACf,CAAC;IAoBJ,CAAC;IAlBC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAErC,OAAO;YACL;gBACE,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE;oBACN,GAAG,EAAE,IAAA,iBAAQ,EAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,WAAW,EAAE,uBAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC;oBAC1D,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAvBD,gCAuBC"}
@@ -0,0 +1,12 @@
1
+ import { AirbyteRecord } from 'faros-airbyte-cdk';
2
+ import { DestinationRecord, StreamContext } from '../converter';
3
+ import { ZephyrConverter } from './common';
4
+ export declare class TestExecutions extends ZephyrConverter {
5
+ private collectedTestCases;
6
+ readonly destinationModels: string[];
7
+ convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
8
+ onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
9
+ private static getStatus;
10
+ private collectTestCase;
11
+ private convertTestCases;
12
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestExecutions = void 0;
4
+ const faros_js_client_1 = require("faros-js-client");
5
+ const lodash_1 = require("lodash");
6
+ const common_1 = require("./common");
7
+ class TestExecutions extends common_1.ZephyrConverter {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.collectedTestCases = new Map();
11
+ this.destinationModels = [
12
+ 'tms_TaskTestCaseResultAssociation',
13
+ 'qa_TestCase',
14
+ 'qa_TestSuiteTestCaseAssociation',
15
+ 'qa_TestCaseResult',
16
+ ];
17
+ }
18
+ async convert(record) {
19
+ var _a;
20
+ const testExecution = record.record.data;
21
+ this.collectTestCase(testExecution.issueKey, testExecution.summary, testExecution.cycleId, testExecution.issueDescription, testExecution.label);
22
+ const testCaseResultKey = {
23
+ uid: (0, lodash_1.toString)(testExecution.id),
24
+ source: this.source,
25
+ };
26
+ const testCase = {
27
+ uid: (0, lodash_1.toString)(testExecution.issueKey),
28
+ source: this.source,
29
+ };
30
+ const results = [];
31
+ results.push({
32
+ model: 'qa_TestCaseResult',
33
+ record: {
34
+ ...testCaseResultKey,
35
+ source: this.source,
36
+ startedAt: faros_js_client_1.Utils.toDate(testExecution.executedOnVal),
37
+ status: TestExecutions.getStatus(testExecution.executionStatusName),
38
+ tags: this.labelToTag(testExecution.label),
39
+ testCase,
40
+ // Zephyr does not have a test execution so will be empty
41
+ },
42
+ });
43
+ for (const defect of (_a = testExecution.defects) !== null && _a !== void 0 ? _a : []) {
44
+ results.push({
45
+ model: 'tms_TaskTestCaseResultAssociation',
46
+ record: {
47
+ defect: { uid: defect.key, source: this.taskSource },
48
+ testCaseResult: testCaseResultKey,
49
+ },
50
+ });
51
+ }
52
+ return results;
53
+ }
54
+ async onProcessingComplete(ctx) {
55
+ return this.convertTestCases();
56
+ }
57
+ static getStatus(status) {
58
+ const detail = status.toUpperCase();
59
+ switch (detail) {
60
+ case 'PASS':
61
+ return { category: 'Success', detail };
62
+ case 'FAIL':
63
+ return { category: 'Failure', detail };
64
+ case 'NA':
65
+ return { category: 'Unknown', detail };
66
+ default:
67
+ return { category: 'Custom', detail };
68
+ }
69
+ }
70
+ collectTestCase(key, name, cycleId, description, label) {
71
+ var _a;
72
+ if (!key) {
73
+ return null;
74
+ }
75
+ const tags = this.labelToTag(label);
76
+ if (!this.collectedTestCases.has(key)) {
77
+ this.collectedTestCases.set(key, {
78
+ key,
79
+ name,
80
+ description,
81
+ tags,
82
+ cycles: new Set([cycleId]),
83
+ });
84
+ }
85
+ else {
86
+ (_a = this.collectedTestCases.get(key)) === null || _a === void 0 ? void 0 : _a.cycles.add(cycleId);
87
+ }
88
+ return key;
89
+ }
90
+ convertTestCases() {
91
+ const results = [];
92
+ for (const testCase of this.collectedTestCases.values()) {
93
+ results.push({
94
+ model: 'qa_TestCase',
95
+ record: {
96
+ uid: testCase.key,
97
+ name: testCase.name,
98
+ description: faros_js_client_1.Utils.cleanAndTruncate(testCase.description),
99
+ source: this.source,
100
+ task: { uid: testCase.key, source: this.taskSource },
101
+ },
102
+ });
103
+ for (const cycleId of testCase.cycles) {
104
+ results.push({
105
+ model: 'qa_TestSuiteTestCaseAssociation',
106
+ record: {
107
+ testSuite: { uid: (0, lodash_1.toString)(cycleId), source: this.source },
108
+ testCase: { uid: testCase.key, source: this.source },
109
+ },
110
+ });
111
+ }
112
+ }
113
+ return results;
114
+ }
115
+ }
116
+ exports.TestExecutions = TestExecutions;
117
+ //# sourceMappingURL=test_executions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_executions.js","sourceRoot":"","sources":["../../../src/converters/zephyr/test_executions.ts"],"names":[],"mappings":"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"}