rooibos-roku 4.4.2

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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/dist/lib/framework/BaseTestReporter.bs +27 -0
  4. package/dist/lib/framework/BaseTestSuite.bs +2131 -0
  5. package/dist/lib/framework/CommonUtils.bs +732 -0
  6. package/dist/lib/framework/ConsoleTestReporter.bs +200 -0
  7. package/dist/lib/framework/Coverage.bs +51 -0
  8. package/dist/lib/framework/Matchers.bs +28 -0
  9. package/dist/lib/framework/Rooibos.bs +83 -0
  10. package/dist/lib/framework/RooibosScene.xml +50 -0
  11. package/dist/lib/framework/RuntimeConfig.bs +20 -0
  12. package/dist/lib/framework/Stats.bs +46 -0
  13. package/dist/lib/framework/Test.bs +109 -0
  14. package/dist/lib/framework/TestGroup.bs +109 -0
  15. package/dist/lib/framework/TestResult.bs +74 -0
  16. package/dist/lib/framework/TestRunner.bs +187 -0
  17. package/dist/lib/framework/Utils.bs +63 -0
  18. package/dist/lib/framework/unused/CodeCoverage.brs +35 -0
  19. package/dist/lib/framework/unused/CodeCoverage.xml +13 -0
  20. package/dist/lib/framework/unused/CodeCoverageSupport.brs +56 -0
  21. package/dist/lib/rooibos/Annotation.js +187 -0
  22. package/dist/lib/rooibos/Annotation.js.map +1 -0
  23. package/dist/lib/rooibos/CodeCoverageProcessor.js +114 -0
  24. package/dist/lib/rooibos/CodeCoverageProcessor.js.map +1 -0
  25. package/dist/lib/rooibos/CodeCoverageProcessor.spec.js +62 -0
  26. package/dist/lib/rooibos/CodeCoverageProcessor.spec.js.map +1 -0
  27. package/dist/lib/rooibos/CodeCoverageType.js +11 -0
  28. package/dist/lib/rooibos/CodeCoverageType.js.map +1 -0
  29. package/dist/lib/rooibos/FileFactory.js +92 -0
  30. package/dist/lib/rooibos/FileFactory.js.map +1 -0
  31. package/dist/lib/rooibos/RawCodeStatement.js +21 -0
  32. package/dist/lib/rooibos/RawCodeStatement.js.map +1 -0
  33. package/dist/lib/rooibos/RooibosConfig.js +11 -0
  34. package/dist/lib/rooibos/RooibosConfig.js.map +1 -0
  35. package/dist/lib/rooibos/RooibosSession.js +151 -0
  36. package/dist/lib/rooibos/RooibosSession.js.map +1 -0
  37. package/dist/lib/rooibos/RooibosSessionInfo.js +181 -0
  38. package/dist/lib/rooibos/RooibosSessionInfo.js.map +1 -0
  39. package/dist/lib/rooibos/TestCase.js +65 -0
  40. package/dist/lib/rooibos/TestCase.js.map +1 -0
  41. package/dist/lib/rooibos/TestGroup.js +86 -0
  42. package/dist/lib/rooibos/TestGroup.js.map +1 -0
  43. package/dist/lib/rooibos/TestSuite.js +118 -0
  44. package/dist/lib/rooibos/TestSuite.js.map +1 -0
  45. package/dist/lib/rooibos/TestSuiteBuilder.js +192 -0
  46. package/dist/lib/rooibos/TestSuiteBuilder.js.map +1 -0
  47. package/dist/lib/rooibos/TestSuiteBuilder.spec.js +1126 -0
  48. package/dist/lib/rooibos/TestSuiteBuilder.spec.js.map +1 -0
  49. package/dist/lib/rooibos/Utils.js +173 -0
  50. package/dist/lib/rooibos/Utils.js.map +1 -0
  51. package/dist/lib/utils/Diagnostics.js +116 -0
  52. package/dist/lib/utils/Diagnostics.js.map +1 -0
  53. package/dist/lib/utils/testHelpers.spec.js +24 -0
  54. package/dist/lib/utils/testHelpers.spec.js.map +1 -0
  55. package/dist/plugin.js +116 -0
  56. package/dist/plugin.js.map +1 -0
  57. package/package.json +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestSuiteBuilder.spec.js","sourceRoot":"","sources":["../../../src/lib/rooibos/TestSuiteBuilder.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.standardizePath = exports.getTokenText = exports.createVarExpression = exports.createIfStatement = exports.sanitizeBsJsonString = exports.changeClassMethodBody = exports.addOverriddenMethod = exports.changeFunctionBody = exports.getFunctionBody = exports.makeASTFunction = exports.pad = exports.addSetItems = exports.getRegexMatchValue = exports.getRegexMatchesValues = exports.spliceString = void 0;
4
+ const brighterscript_1 = require("brighterscript");
5
+ const rokuDeploy = require("roku-deploy");
6
+ const Diagnostics_1 = require("../utils/Diagnostics");
7
+ function spliceString(str, index, count, add) {
8
+ // We cannot pass negative indexes directly to the 2nd slicing operation.
9
+ if (index < 0) {
10
+ index = str.length + index;
11
+ if (index < 0) {
12
+ index = 0;
13
+ }
14
+ }
15
+ return str.slice(0, index) + (add || '') + str.slice(index + count);
16
+ }
17
+ exports.spliceString = spliceString;
18
+ function getRegexMatchesValues(input, regex, groupIndex) {
19
+ let values = [];
20
+ let matches;
21
+ // eslint-disable-next-line
22
+ while (matches = regex.exec(input)) {
23
+ values.push(matches[groupIndex]);
24
+ }
25
+ return values;
26
+ }
27
+ exports.getRegexMatchesValues = getRegexMatchesValues;
28
+ function getRegexMatchValue(input, regex, groupIndex) {
29
+ let matches;
30
+ // eslint-disable-next-line
31
+ while (matches = regex.exec(input)) {
32
+ if (matches.length > groupIndex) {
33
+ return matches[groupIndex];
34
+ }
35
+ }
36
+ return null;
37
+ }
38
+ exports.getRegexMatchValue = getRegexMatchValue;
39
+ function addSetItems(setA, setB) {
40
+ for (const elem of setB) {
41
+ setA.add(elem);
42
+ }
43
+ }
44
+ exports.addSetItems = addSetItems;
45
+ function pad(pad, str, padLeft) {
46
+ if (typeof str === 'undefined') {
47
+ return pad;
48
+ }
49
+ if (padLeft) {
50
+ return (pad + str).slice(-pad.length);
51
+ }
52
+ else {
53
+ return (str + pad).substring(0, pad.length);
54
+ }
55
+ }
56
+ exports.pad = pad;
57
+ function makeASTFunction(source) {
58
+ let tokens = brighterscript_1.Lexer.scan(source).tokens;
59
+ let { statements } = brighterscript_1.Parser.parse(tokens, { mode: brighterscript_1.ParseMode.BrighterScript });
60
+ if (statements && statements.length > 0) {
61
+ return statements[0];
62
+ }
63
+ return undefined;
64
+ }
65
+ exports.makeASTFunction = makeASTFunction;
66
+ function getFunctionBody(source) {
67
+ let funcStatement = makeASTFunction(source);
68
+ return funcStatement ? funcStatement.func.body.statements : [];
69
+ }
70
+ exports.getFunctionBody = getFunctionBody;
71
+ function changeFunctionBody(statement, source) {
72
+ let statements = statement.func.body.statements;
73
+ statements.splice(0, statements.length);
74
+ let newStatements = (typeof source === 'string') ? getFunctionBody(source) : source;
75
+ for (let newStatement of newStatements) {
76
+ statements.push(newStatement);
77
+ }
78
+ }
79
+ exports.changeFunctionBody = changeFunctionBody;
80
+ function addOverriddenMethod(file, annotation, target, name, source) {
81
+ let funcSource = `
82
+ function ${name}()
83
+ ${source}
84
+ end function
85
+ `;
86
+ let tokens = brighterscript_1.Lexer.scan(funcSource).tokens;
87
+ let { statements, diagnostics } = brighterscript_1.Parser.parse(tokens, { mode: brighterscript_1.ParseMode.BrighterScript });
88
+ let error = '';
89
+ if (statements && statements.length > 0) {
90
+ let statement = statements[0];
91
+ if (statement.func.body.statements.length > 0) {
92
+ let p = brighterscript_1.createToken(brighterscript_1.TokenKind.Public, 'public', target.range);
93
+ let o = brighterscript_1.createToken(brighterscript_1.TokenKind.Override, 'override', target.range);
94
+ let n = brighterscript_1.createIdentifier(name, target.range).name;
95
+ let cms = new brighterscript_1.ClassMethodStatement(p, n, statement.func, o);
96
+ target.body.push(cms);
97
+ return true;
98
+ }
99
+ }
100
+ error = (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.length) > 0 ? diagnostics[0].message : 'unknown error';
101
+ Diagnostics_1.diagnosticCorruptTestProduced(file, annotation, error, funcSource);
102
+ return false;
103
+ }
104
+ exports.addOverriddenMethod = addOverriddenMethod;
105
+ function changeClassMethodBody(target, name, source) {
106
+ let method = target.methods.find((m) => m.name.text === name);
107
+ if (brighterscript_1.isClassMethodStatement(method)) {
108
+ changeFunctionBody(method, source);
109
+ return true;
110
+ }
111
+ return false;
112
+ }
113
+ exports.changeClassMethodBody = changeClassMethodBody;
114
+ function sanitizeBsJsonString(text) {
115
+ return `"${text ? text.replace(/"/g, '\'') : ''}"`;
116
+ }
117
+ exports.sanitizeBsJsonString = sanitizeBsJsonString;
118
+ function createIfStatement(condition, statements) {
119
+ let ifToken = brighterscript_1.createToken(brighterscript_1.TokenKind.If, 'if', brighterscript_1.Range.create(1, 1, 1, 999999));
120
+ let thenBranch = new brighterscript_1.Block(statements, brighterscript_1.Range.create(1, 1, 1, 1));
121
+ return new brighterscript_1.IfStatement({ if: ifToken, then: brighterscript_1.createToken(brighterscript_1.TokenKind.Then, '', brighterscript_1.Range.create(1, 1, 1, 999999)) }, condition, thenBranch);
122
+ }
123
+ exports.createIfStatement = createIfStatement;
124
+ function createVarExpression(varName, operator, value) {
125
+ let variable = brighterscript_1.createIdentifier(varName, brighterscript_1.Range.create(1, 1, 1, 999999));
126
+ let v = brighterscript_1.createStringLiteral(value, brighterscript_1.Range.create(1, 1, 1, 999999));
127
+ let t = brighterscript_1.createToken(operator, getTokenText(operator), brighterscript_1.Range.create(1, 1, 1, 999999));
128
+ return new brighterscript_1.BinaryExpression(variable, t, v);
129
+ }
130
+ exports.createVarExpression = createVarExpression;
131
+ function getTokenText(operator) {
132
+ switch (operator) {
133
+ case brighterscript_1.TokenKind.Equal:
134
+ return '=';
135
+ case brighterscript_1.TokenKind.Plus:
136
+ return '+';
137
+ case brighterscript_1.TokenKind.Minus:
138
+ return '-';
139
+ case brighterscript_1.TokenKind.Less:
140
+ return '<';
141
+ case brighterscript_1.TokenKind.Greater:
142
+ return '>';
143
+ default:
144
+ return '';
145
+ }
146
+ }
147
+ exports.getTokenText = getTokenText;
148
+ /**
149
+ * A tagged template literal function for standardizing the path. This has to be defined as standalone function since it's a tagged template literal function,
150
+ * we can't use `object.tag` syntax.
151
+ */
152
+ function standardizePath(stringParts, ...expressions) {
153
+ let result = [];
154
+ for (let i = 0; i < stringParts.length; i++) {
155
+ result.push(stringParts[i], expressions[i]);
156
+ }
157
+ return driveLetterToLower(rokuDeploy.standardizePath(result.join('')));
158
+ }
159
+ exports.standardizePath = standardizePath;
160
+ function driveLetterToLower(fullPath) {
161
+ if (fullPath) {
162
+ let firstCharCode = fullPath.charCodeAt(0);
163
+ if (
164
+ //is upper case A-Z
165
+ firstCharCode >= 65 && firstCharCode <= 90 &&
166
+ //next char is colon
167
+ fullPath[1] === ':') {
168
+ fullPath = fullPath[0].toLowerCase() + fullPath.substring(1);
169
+ }
170
+ }
171
+ return fullPath;
172
+ }
173
+ //# sourceMappingURL=Utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/lib/rooibos/Utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.diagnosticCorruptTestProduced = exports.diagnosticMultipleTestOnFunctionDefined = exports.diagnosticMultipleDescribeAnnotations = exports.diagnosticNoTestNameDefined = exports.diagnosticTestWithArgsButNoParams = exports.diagnosticNoTestFunctionDefined = exports.diagnosticEmptyGroup = exports.diagnosticErrorNoMainFound = exports.diagnosticErrorProcessingFile = exports.diagnosticIncompatibleAnnotation = exports.diagnosticTestWithNameAlreadyDefined = exports.diagnosticGroupWithNameAlreadyDefined = exports.diagnosticNodeTestIllegalNode = exports.diagnosticNodeTestRequiresNode = exports.diagnosticWrongTestParameterCount = exports.diagnosticIllegalParams = exports.diagnosticTestAnnotationOutsideOfGroup = exports.diagnosticDuplicateSuite = exports.diagnosticWrongParameterCount = exports.diagnosticNoGroup = exports.diagnosticWrongAnnotation = void 0;
4
+ const brighterscript_1 = require("brighterscript");
5
+ function addDiagnostic(file, code, message, startLine = 0, startCol = 0, endLine = -1, endCol = 99999, severity = brighterscript_1.DiagnosticSeverity.Error) {
6
+ endLine = endLine === -1 ? startLine : endLine;
7
+ file.addDiagnostics([createDiagnostic(file, code, message, startLine, startCol, endLine, endCol, severity)]);
8
+ }
9
+ function addDiagnosticForStatement(file, code, message, statement, severity = brighterscript_1.DiagnosticSeverity.Error) {
10
+ let line = statement.range.start.line;
11
+ let col = statement.range.start.character;
12
+ file.addDiagnostics([createDiagnostic(file, code, message, line, col, line, 999999, severity)]);
13
+ }
14
+ function addDiagnosticForAnnotation(file, code, message, annotation, severity = brighterscript_1.DiagnosticSeverity.Error, endChar) {
15
+ let line = annotation.range.start.line;
16
+ let col = annotation.range.start.character;
17
+ file.addDiagnostics([createDiagnostic(file, code, message, line, col, annotation.range.end.line, annotation.range.end.character + 9999, severity)]);
18
+ }
19
+ function createDiagnostic(bscFile, code, message, startLine = 0, startCol = 99999, endLine = 0, endCol = 99999, severity = brighterscript_1.DiagnosticSeverity.Error) {
20
+ const diagnostic = {
21
+ code: `RBS${code}`,
22
+ message: message,
23
+ range: brighterscript_1.Range.create(startLine, startCol, endLine, endCol),
24
+ file: bscFile,
25
+ severity: severity
26
+ };
27
+ return diagnostic;
28
+ }
29
+ /**
30
+ * Public methods
31
+ */
32
+ function diagnosticWrongAnnotation(file, statement, message) {
33
+ addDiagnosticForStatement(file, 2200, 'Wrong kind of annotation.' + message, statement);
34
+ }
35
+ exports.diagnosticWrongAnnotation = diagnosticWrongAnnotation;
36
+ function diagnosticNoGroup(file, statement, annotationType) {
37
+ addDiagnosticForStatement(file, 2201, `Cannot process ${annotationType} of a test group`, statement);
38
+ }
39
+ exports.diagnosticNoGroup = diagnosticNoGroup;
40
+ function diagnosticWrongParameterCount(file, statement, expectedParamCount = 0) {
41
+ addDiagnosticForStatement(file, 2202, `Function ${statement.name} defined with wrong number of params: expected ${expectedParamCount}`, statement);
42
+ }
43
+ exports.diagnosticWrongParameterCount = diagnosticWrongParameterCount;
44
+ function diagnosticDuplicateSuite(file, statement, annotation) {
45
+ addDiagnosticForStatement(file, 2203, `Test suite already declared with name: ${annotation.name}. This test suite will be skipped.`, statement);
46
+ }
47
+ exports.diagnosticDuplicateSuite = diagnosticDuplicateSuite;
48
+ function diagnosticTestAnnotationOutsideOfGroup(file, statement, annotation) {
49
+ addDiagnosticForStatement(file, 2204, `Found Group, when a test function was expected`, statement);
50
+ }
51
+ exports.diagnosticTestAnnotationOutsideOfGroup = diagnosticTestAnnotationOutsideOfGroup;
52
+ function diagnosticIllegalParams(file, annotation) {
53
+ addDiagnosticForAnnotation(file, 2205, `Could not parse params for test.`, annotation);
54
+ }
55
+ exports.diagnosticIllegalParams = diagnosticIllegalParams;
56
+ function diagnosticWrongTestParameterCount(file, annotation, gotCount = 0, expectedParamCount = 0) {
57
+ addDiagnosticForAnnotation(file, 2206, `Params for test do not match arg count on method. Got ${gotCount} expected ${expectedParamCount}`, annotation);
58
+ }
59
+ exports.diagnosticWrongTestParameterCount = diagnosticWrongTestParameterCount;
60
+ function diagnosticNodeTestRequiresNode(file, annotation) {
61
+ addDiagnosticForAnnotation(file, 2207, `Node name must be declared for a node test. This is the component that the generated test will extend.`, annotation);
62
+ }
63
+ exports.diagnosticNodeTestRequiresNode = diagnosticNodeTestRequiresNode;
64
+ function diagnosticNodeTestIllegalNode(file, annotation, nodeName) {
65
+ addDiagnosticForAnnotation(file, 2208, `Component ${nodeName}, is not found in this project. Node tests generate a new component that extends the component you wish to test. Please make sure that component exists and compiles.`, annotation);
66
+ }
67
+ exports.diagnosticNodeTestIllegalNode = diagnosticNodeTestIllegalNode;
68
+ function diagnosticGroupWithNameAlreadyDefined(file, annotation) {
69
+ addDiagnosticForAnnotation(file, 2209, `Test group with name ${annotation.name}, is already declared in this suite. Ignoring`, annotation.annotation);
70
+ }
71
+ exports.diagnosticGroupWithNameAlreadyDefined = diagnosticGroupWithNameAlreadyDefined;
72
+ function diagnosticTestWithNameAlreadyDefined(annotation) {
73
+ addDiagnosticForAnnotation(annotation.file, 2210, `Test with name ${annotation.name}, is already declared in this group. Ignoring`, annotation.annotation);
74
+ }
75
+ exports.diagnosticTestWithNameAlreadyDefined = diagnosticTestWithNameAlreadyDefined;
76
+ function diagnosticIncompatibleAnnotation(annotation) {
77
+ addDiagnosticForAnnotation(annotation.file, 2211, `Was expecting a function, got a test annotation`, annotation.annotation);
78
+ }
79
+ exports.diagnosticIncompatibleAnnotation = diagnosticIncompatibleAnnotation;
80
+ function diagnosticErrorProcessingFile(file, message) {
81
+ addDiagnostic(file, 2212, `General error : ` + message);
82
+ }
83
+ exports.diagnosticErrorProcessingFile = diagnosticErrorProcessingFile;
84
+ function diagnosticErrorNoMainFound(file) {
85
+ addDiagnostic(file, 2213, `Could not find main function to inject rooibos launch code. Rooibos has added one for you`, 1, 1, 1, 1, brighterscript_1.DiagnosticSeverity.Warning);
86
+ }
87
+ exports.diagnosticErrorNoMainFound = diagnosticErrorNoMainFound;
88
+ function diagnosticEmptyGroup(file, annotation) {
89
+ addDiagnosticForAnnotation(file, 2214, `Test group with name ${annotation.name}, empty.`, annotation.annotation);
90
+ }
91
+ exports.diagnosticEmptyGroup = diagnosticEmptyGroup;
92
+ function diagnosticNoTestFunctionDefined(file, annotation) {
93
+ addDiagnosticForAnnotation(file, 2215, `Multiple test annotations per function are not allowed. ${annotation.name || ''}`, annotation.annotation);
94
+ }
95
+ exports.diagnosticNoTestFunctionDefined = diagnosticNoTestFunctionDefined;
96
+ function diagnosticTestWithArgsButNoParams(file, annotation, gotCount = 0) {
97
+ addDiagnosticForAnnotation(file, 2216, `Test method signature has arguments; but test has no paremeters. Got ${gotCount} args: expected 0. Did you forget your @params annotations?`, annotation);
98
+ }
99
+ exports.diagnosticTestWithArgsButNoParams = diagnosticTestWithArgsButNoParams;
100
+ function diagnosticNoTestNameDefined(file, annotation) {
101
+ addDiagnosticForAnnotation(file, 2217, `It annotation requires a name `, annotation);
102
+ }
103
+ exports.diagnosticNoTestNameDefined = diagnosticNoTestNameDefined;
104
+ function diagnosticMultipleDescribeAnnotations(file, annotation) {
105
+ addDiagnosticForAnnotation(file, 2218, `Found multiple @describe annotations. Did you forget to write some tests?`, annotation);
106
+ }
107
+ exports.diagnosticMultipleDescribeAnnotations = diagnosticMultipleDescribeAnnotations;
108
+ function diagnosticMultipleTestOnFunctionDefined(file, annotation) {
109
+ addDiagnosticForAnnotation(file, 2219, `Found multiple @it annotations. Did you forget to write some tests?`, annotation);
110
+ }
111
+ exports.diagnosticMultipleTestOnFunctionDefined = diagnosticMultipleTestOnFunctionDefined;
112
+ function diagnosticCorruptTestProduced(file, annotation, error, source) {
113
+ addDiagnosticForAnnotation(file, 2220, `The test resulted in a corrupt data file. This is typically because one of the param tests resulted in a failed transpilation. Please raise an issue with as much of your test file as possible to reproduce the issue.\n ${error} \n ${source} `, annotation);
114
+ }
115
+ exports.diagnosticCorruptTestProduced = diagnosticCorruptTestProduced;
116
+ //# sourceMappingURL=Diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diagnostics.js","sourceRoot":"","sources":["../../../src/lib/utils/Diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.trimLeading = void 0;
4
+ /**
5
+ * Trim leading whitespace for every line (to make test writing cleaner
6
+ */
7
+ function trimLeading(text) {
8
+ var _a;
9
+ if (!text) {
10
+ return text;
11
+ }
12
+ const lines = text.split(/\r?\n/);
13
+ //skip leading empty lines
14
+ while (((_a = lines[0]) === null || _a === void 0 ? void 0 : _a.trim().length) === 0) {
15
+ lines.splice(0, 1);
16
+ }
17
+ for (let i = 0; i < lines.length; i++) {
18
+ lines[i] = lines[i].trimLeft();
19
+ }
20
+ //apply the trim to each line
21
+ return lines.join('\n');
22
+ }
23
+ exports.trimLeading = trimLeading;
24
+ //# sourceMappingURL=testHelpers.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testHelpers.spec.js","sourceRoot":"","sources":["../../../src/lib/utils/testHelpers.spec.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;;IACpC,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,IAAI,CAAC;KACf;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAElC,0BAA0B;IAC1B,OAAO,OAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,GAAG,MAAM,MAAK,CAAC,EAAE;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACtB;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;KAClC;IAED,6BAA6B;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAjBD,kCAiBC"}
package/dist/plugin.js ADDED
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RooibosPlugin = void 0;
4
+ const astUtils_1 = require("brighterscript/dist/astUtils");
5
+ const RooibosSession_1 = require("./lib/rooibos/RooibosSession");
6
+ const CodeCoverageProcessor_1 = require("./lib/rooibos/CodeCoverageProcessor");
7
+ const FileFactory_1 = require("./lib/rooibos/FileFactory");
8
+ const minimatch = require("minimatch");
9
+ class RooibosPlugin {
10
+ constructor() {
11
+ this.isFrameworkAdded = false;
12
+ }
13
+ beforeProgramCreate(builder) {
14
+ this._builder = builder;
15
+ this.config = this.getConfig(builder.options.rooibos || {});
16
+ this.fileFactory = new FileFactory_1.FileFactory(this.config);
17
+ if (!this.session) {
18
+ this.session = new RooibosSession_1.RooibosSession(builder, this.fileFactory);
19
+ this.codeCoverageProcessor = new CodeCoverageProcessor_1.CodeCoverageProcessor(builder);
20
+ }
21
+ }
22
+ getConfig(options) {
23
+ let config = options;
24
+ if (config.printTestTimes === undefined) {
25
+ config.printTestTimes = true;
26
+ }
27
+ if (config.catchCrashes === undefined) {
28
+ config.catchCrashes = true;
29
+ }
30
+ if (config.failFast === undefined) {
31
+ config.failFast = true;
32
+ }
33
+ if (config.showOnlyFailures === undefined) {
34
+ config.showOnlyFailures = true;
35
+ }
36
+ if (config.isRecordingCodeCoverage === undefined) {
37
+ config.isRecordingCodeCoverage = true;
38
+ }
39
+ //ignore roku modules by default
40
+ if (config.includeFilters === undefined) {
41
+ config.includeFilters = [
42
+ '**/*.spec.bs',
43
+ '!**/BaseTestSuite.spec.bs',
44
+ '!**/roku_modules/**/*'
45
+ ];
46
+ }
47
+ return config;
48
+ }
49
+ afterProgramCreate(program) {
50
+ if (!this.isFrameworkAdded) {
51
+ this.fileFactory.addFrameworkFiles(program);
52
+ }
53
+ }
54
+ afterFileParse(file) {
55
+ // console.log('afp', file.pkgPath);
56
+ if (this.fileFactory.isIgnoredFile(file) || !this.shouldSearchInFileForTests(file)) {
57
+ return;
58
+ }
59
+ // console.log('processing ', file.pkgPath);
60
+ if (astUtils_1.isBrsFile(file)) {
61
+ if (this.session.processFile(file)) {
62
+ //
63
+ }
64
+ else {
65
+ this.codeCoverageProcessor.addCodeCoverage(file);
66
+ }
67
+ }
68
+ }
69
+ beforePublish() {
70
+ // console.log('bp');
71
+ for (let testSuite of [...this.session.sessionInfo.testSuitesToRun.values()]) {
72
+ let noEarlyExit = testSuite.annotation.noEarlyExit;
73
+ if (noEarlyExit) {
74
+ console.warn(`WARNING: testSuite "${testSuite.name}" is marked as noEarlyExit`);
75
+ }
76
+ testSuite.addDataFunctions();
77
+ for (let group of [...testSuite.testGroups.values()].filter((tg) => tg.isIncluded)) {
78
+ for (let testCase of [...group.testCases.values()].filter((tc) => tc.isIncluded)) {
79
+ group.modifyAssertions(testCase, noEarlyExit);
80
+ }
81
+ }
82
+ }
83
+ for (let testSuite of [...this.session.sessionInfo.allTestSuites.values()].filter((ts) => !ts.isIncluded)) {
84
+ testSuite.removeCode();
85
+ }
86
+ this.session.addTestRunnerMetadata();
87
+ this.session.addLaunchHook();
88
+ this.session.createNodeFiles(this._builder.program);
89
+ }
90
+ beforeProgramValidate() {
91
+ // console.log('bpv');
92
+ this.session.updateSessionStats();
93
+ for (let testSuite of [...this.session.sessionInfo.testSuites.values()]) {
94
+ testSuite.validate();
95
+ }
96
+ }
97
+ shouldSearchInFileForTests(file) {
98
+ if (!this.config.includeFilters || this.config.includeFilters.length === 0) {
99
+ return true;
100
+ }
101
+ else {
102
+ for (let filter of this.config.includeFilters) {
103
+ if (!minimatch(file.pathAbsolute, filter)) {
104
+ return false;
105
+ }
106
+ }
107
+ }
108
+ // console.log('including ', file.pkgPath);
109
+ return true;
110
+ }
111
+ }
112
+ exports.RooibosPlugin = RooibosPlugin;
113
+ exports.default = () => {
114
+ return new RooibosPlugin();
115
+ };
116
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAQA,2DAAyD;AAEzD,iEAA8D;AAE9D,+EAA4E;AAC5E,2DAAwD;AAIxD,uCAAuC;AAEvC,MAAa,aAAa;IAA1B;QAMW,qBAAgB,GAAG,KAAK,CAAC;IA+GpC,CAAC;IA3GG,mBAAmB,CAAC,OAAuB;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,OAAe,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,qBAAqB,GAAG,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;SACnE;IACL,CAAC;IACO,SAAS,CAAC,OAAY;QAC1B,IAAI,MAAM,GAAkB,OAAO,CAAC;QACpC,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;SAChC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;QACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAClC;QACD,IAAI,MAAM,CAAC,uBAAuB,KAAK,SAAS,EAAE;YAC9C,MAAM,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACzC;QACD,gCAAgC;QAChC,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,cAAc,GAAG;gBACpB,cAAc;gBACd,2BAA2B;gBAC3B,uBAAuB;aAAC,CAAC;SAChC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,cAAc,CAAC,IAAyB;QACpC,oCAAoC;QACpC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;YAChF,OAAO;SACV;QAED,4CAA4C;QAC5C,IAAI,oBAAS,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAChC,EAAE;aACL;iBAAM;gBACH,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aACpD;SACJ;IACL,CAAC;IAED,aAAa;QACT,qBAAqB;QACrB,KAAK,IAAI,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE;YAC1E,IAAI,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;YACnD,IAAI,WAAW,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,SAAS,CAAC,IAAI,4BAA4B,CAAC,CAAC;aACnF;YAED,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC7B,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;gBAChF,KAAK,IAAI,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;oBAC9E,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;iBACjD;aACJ;SACJ;QAED,KAAK,IAAI,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YACvG,SAAS,CAAC,UAAU,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,qBAAqB;QACjB,sBAAsB;QACtB,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAClC,KAAK,IAAI,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;YACrE,SAAS,CAAC,QAAQ,EAAE,CAAC;SACxB;IACL,CAAC;IAED,0BAA0B,CAAC,IAAa;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACxE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvC,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QACD,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AArHD,sCAqHC;AAED,kBAAe,GAAG,EAAE;IAChB,OAAO,IAAI,aAAa,EAAE,CAAC;AAC/B,CAAC,CAAC"}