brighterscript 1.0.0-alpha.10 → 1.0.0-alpha.14
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.
- package/CHANGELOG.md +247 -267
- package/README.md +2 -2
- package/dist/Cache.d.ts +3 -3
- package/dist/Cache.js +10 -6
- package/dist/Cache.js.map +1 -1
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +4 -4
- package/dist/CommentFlagProcessor.js +5 -3
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticFilterer.js +1 -1
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/LanguageServer.d.ts +1 -6
- package/dist/LanguageServer.js +5 -14
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +3 -3
- package/dist/PluginInterface.js +3 -0
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +35 -20
- package/dist/Program.js +132 -67
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.js +4 -4
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +22 -13
- package/dist/Scope.js +85 -70
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +1 -1
- package/dist/SymbolTable.js +2 -2
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +2 -2
- package/dist/XmlScope.js +5 -5
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/AstEditor.d.ts +27 -0
- package/dist/astUtils/AstEditor.js +97 -0
- package/dist/astUtils/AstEditor.js.map +1 -0
- package/dist/{bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts → astUtils/AstEditor.spec.d.ts} +0 -0
- package/dist/astUtils/AstEditor.spec.js +133 -0
- package/dist/astUtils/AstEditor.spec.js.map +1 -0
- package/dist/astUtils/creators.spec.js +4 -4
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +4 -2
- package/dist/astUtils/reflection.js +10 -1
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +116 -116
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js +13 -13
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.js +1 -1
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +26 -26
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/astUtils/xml.d.ts +1 -0
- package/dist/astUtils/xml.js +6 -1
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.js +5 -2
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +3 -3
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +17 -17
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +8 -0
- package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.js → BrsFileSemanticTokensProcessor.js} +13 -15
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
- package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.spec.js → BrsFileSemanticTokensProcessor.spec.js} +5 -5
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
- package/dist/diagnosticUtils.d.ts +1 -0
- package/dist/diagnosticUtils.js +14 -7
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.js +2 -2
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +444 -269
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +17 -11
- package/dist/files/BrsFile.js +220 -153
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +620 -272
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +6 -5
- package/dist/files/XmlFile.js +14 -9
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +238 -191
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +29 -27
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/globalCallables.d.ts +3 -1
- package/dist/globalCallables.js +198 -99
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +12 -3
- package/dist/index.js +22 -4
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +71 -10
- package/dist/lexer/Lexer.d.ts +5 -1
- package/dist/lexer/Lexer.js +52 -35
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +564 -534
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +4 -0
- package/dist/lexer/TokenKind.js +44 -1
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/Expression.d.ts +1 -1
- package/dist/parser/Expression.js +66 -66
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +107 -106
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +17 -5
- package/dist/parser/Parser.js +431 -315
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +418 -296
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.js +2 -2
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +22 -22
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +3 -0
- package/dist/parser/SGTypes.js +12 -7
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/SGTypes.spec.js +84 -84
- package/dist/parser/SGTypes.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +3 -3
- package/dist/parser/Statement.js +61 -61
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +10 -10
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/tests/Parser.spec.d.ts +3 -3
- package/dist/parser/tests/Parser.spec.js +4 -4
- package/dist/parser/tests/Parser.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +58 -58
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +40 -39
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +201 -200
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +37 -37
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Additive.spec.js +30 -30
- package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +119 -119
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +141 -141
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Boolean.spec.js +24 -24
- package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +41 -40
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Exponential.spec.js +17 -17
- package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
- package/dist/parser/tests/expression/Function.spec.js +256 -256
- package/dist/parser/tests/expression/Function.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +87 -87
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +37 -37
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +74 -62
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +41 -41
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Primary.spec.js +41 -41
- package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +110 -2
- package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/Relational.spec.js +43 -43
- package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +6 -6
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +18 -18
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +100 -100
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +36 -36
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
- package/dist/parser/tests/statement/Declaration.spec.js +44 -44
- package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +21 -21
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +198 -197
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/Goto.spec.js +15 -14
- package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +50 -50
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +14 -2
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +17 -17
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +91 -90
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +34 -34
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +46 -46
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +83 -83
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Stop.spec.js +12 -11
- package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js +5 -5
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +13 -13
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Chunk.d.ts +1 -1
- package/dist/preprocessor/Chunk.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +1 -1
- package/dist/preprocessor/Preprocessor.js +8 -8
- package/dist/preprocessor/Preprocessor.js.map +1 -1
- package/dist/preprocessor/Preprocessor.spec.js +49 -49
- package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +72 -72
- package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
- package/dist/types/ArrayType.d.ts +8 -5
- package/dist/types/ArrayType.js +48 -12
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/ArrayType.spec.js +69 -10
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/BooleanType.js +3 -3
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BooleanType.spec.js +2 -2
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/BscType.d.ts +1 -1
- package/dist/types/BscType.js +1 -1
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/CustomType.d.ts +1 -1
- package/dist/types/CustomType.js +6 -4
- package/dist/types/CustomType.js.map +1 -1
- package/dist/types/DoubleType.js +7 -7
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DoubleType.spec.js +2 -2
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.js +1 -1
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +2 -2
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/FloatType.js +7 -7
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FloatType.spec.js +2 -2
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.d.ts +5 -5
- package/dist/types/FunctionType.js +13 -13
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/FunctionType.spec.js +7 -7
- package/dist/types/FunctionType.spec.js.map +1 -1
- package/dist/types/IntegerType.js +7 -7
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/IntegerType.spec.js +2 -2
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.js +3 -3
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +7 -7
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/InvalidType.js +4 -4
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/InvalidType.spec.js +2 -2
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LazyType.d.ts +1 -2
- package/dist/types/LazyType.js +1 -5
- package/dist/types/LazyType.js.map +1 -1
- package/dist/types/LongIntegerType.js +8 -8
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +2 -2
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/ObjectType.js +3 -3
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ObjectType.spec.js +2 -2
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/StringType.js +3 -3
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/StringType.spec.js +2 -2
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/UninitializedType.js +3 -3
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/VoidType.js +3 -3
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/VoidType.spec.js +2 -2
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/types/helpers.js +6 -6
- package/dist/types/helpers.js.map +1 -1
- package/dist/util.d.ts +15 -9
- package/dist/util.js +104 -57
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js +40 -40
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +10 -9
- package/dist/astUtils/index.d.ts +0 -7
- package/dist/astUtils/index.js +0 -26
- package/dist/astUtils/index.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
- package/dist/lexer/index.d.ts +0 -3
- package/dist/lexer/index.js +0 -17
- package/dist/lexer/index.js.map +0 -1
- package/dist/parser/index.d.ts +0 -3
- package/dist/parser/index.js +0 -16
- package/dist/parser/index.js.map +0 -1
- package/dist/preprocessor/index.d.ts +0 -3
- package/dist/preprocessor/index.js +0 -16
- package/dist/preprocessor/index.js.map +0 -1
|
@@ -9,14 +9,17 @@ const Program_1 = require("../Program");
|
|
|
9
9
|
const XmlFile_1 = require("./XmlFile");
|
|
10
10
|
const util_1 = require("../util");
|
|
11
11
|
const testHelpers_spec_1 = require("../testHelpers.spec");
|
|
12
|
+
const ProgramBuilder_1 = require("../ProgramBuilder");
|
|
13
|
+
const Logger_1 = require("../Logger");
|
|
14
|
+
const reflection_1 = require("../astUtils/reflection");
|
|
12
15
|
describe('XmlFile', () => {
|
|
13
|
-
const tempDir = util_1.standardizePath `${process.cwd()}/.tmp`;
|
|
14
|
-
const rootDir = util_1.standardizePath `${tempDir}/rootDir`;
|
|
15
|
-
const stagingDir = util_1.standardizePath `${tempDir}/stagingDir`;
|
|
16
|
+
const tempDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp`;
|
|
17
|
+
const rootDir = (0, util_1.standardizePath) `${tempDir}/rootDir`;
|
|
18
|
+
const stagingDir = (0, util_1.standardizePath) `${tempDir}/stagingDir`;
|
|
16
19
|
let program;
|
|
17
20
|
let sinon = sinonImport.createSandbox();
|
|
18
21
|
let file;
|
|
19
|
-
let testTranspile = testHelpers_spec_1.getTestTranspile(() => [program, rootDir]);
|
|
22
|
+
let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
|
|
20
23
|
beforeEach(() => {
|
|
21
24
|
fsExtra.ensureDirSync(tempDir);
|
|
22
25
|
fsExtra.emptyDirSync(tempDir);
|
|
@@ -35,33 +38,36 @@ describe('XmlFile', () => {
|
|
|
35
38
|
program.plugins.add({
|
|
36
39
|
name: 'allows modifying the parsed XML model',
|
|
37
40
|
afterFileParse: (event) => {
|
|
38
|
-
|
|
41
|
+
var _a, _b, _c, _d;
|
|
42
|
+
if ((0, reflection_1.isXmlFile)(event.file) && ((_d = (_c = (_b = (_a = event.file.parser.ast.root) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.tokens) === null || _d === void 0 ? void 0 : _d.value)) {
|
|
43
|
+
event.file.parser.ast.root.attributes[0].tokens.value.text = expected;
|
|
44
|
+
}
|
|
39
45
|
}
|
|
40
46
|
});
|
|
41
|
-
file = program.setFile('components/ChildScene.xml', testHelpers_spec_1.trim `
|
|
47
|
+
file = program.setFile('components/ChildScene.xml', (0, testHelpers_spec_1.trim) `
|
|
42
48
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
43
49
|
<component name="ChildScene" extends="Scene">
|
|
44
|
-
<script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
|
|
45
50
|
</component>
|
|
46
51
|
`);
|
|
47
|
-
chai_1.expect(file.componentName.text).to.equal(expected);
|
|
52
|
+
(0, chai_1.expect)(file.componentName.text).to.equal(expected);
|
|
48
53
|
});
|
|
49
54
|
it('only removes specified attribute when calling setAttribute', () => {
|
|
50
|
-
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
51
55
|
program.plugins.add({
|
|
52
56
|
name: 'allows modifying the parsed XML model',
|
|
53
|
-
afterFileParse: () => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
afterFileParse: (event) => {
|
|
58
|
+
if ((0, reflection_1.isXmlFile)(event.file)) {
|
|
59
|
+
let child = event.file.parser.ast.component.children.childNodes[0];
|
|
60
|
+
(0, chai_1.expect)(child.attributes).to.have.lengthOf(4);
|
|
61
|
+
child.setAttributeValue('text', undefined);
|
|
62
|
+
(0, chai_1.expect)(child.id).to.equal('one');
|
|
63
|
+
(0, chai_1.expect)(child.attributes).to.have.lengthOf(3);
|
|
64
|
+
child.setAttributeValue('text3', undefined);
|
|
65
|
+
(0, chai_1.expect)(child.id).to.equal('one');
|
|
66
|
+
(0, chai_1.expect)(child.attributes).to.have.lengthOf(2);
|
|
67
|
+
}
|
|
62
68
|
}
|
|
63
69
|
});
|
|
64
|
-
|
|
70
|
+
program.setFile('components/ChildScene.xml', (0, testHelpers_spec_1.trim) `
|
|
65
71
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
66
72
|
<component name="ChildScene" extends="Scene">
|
|
67
73
|
<script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
|
|
@@ -76,17 +82,17 @@ describe('XmlFile', () => {
|
|
|
76
82
|
`);
|
|
77
83
|
});
|
|
78
84
|
it('supports importing BrighterScript files', () => {
|
|
79
|
-
file = program.setFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, testHelpers_spec_1.trim `
|
|
85
|
+
const file = program.setFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, (0, testHelpers_spec_1.trim) `
|
|
80
86
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
81
87
|
<component name="ChildScene" extends="Scene">
|
|
82
88
|
<script type="text/brightscript" uri="ChildScene.bs" />
|
|
83
89
|
</component>
|
|
84
90
|
`);
|
|
85
|
-
chai_1.expect(file.scriptTagImports.map(x => x.pkgPath)[0]).to.equal('pkg:/components/ChildScene.bs');
|
|
91
|
+
(0, chai_1.expect)(file.scriptTagImports.map(x => x.pkgPath)[0]).to.equal('pkg:/components/ChildScene.bs');
|
|
86
92
|
});
|
|
87
93
|
it('does not include commented-out script imports', () => {
|
|
88
94
|
var _a, _b;
|
|
89
|
-
file = program.setFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, testHelpers_spec_1.trim `
|
|
95
|
+
const file = program.setFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, (0, testHelpers_spec_1.trim) `
|
|
90
96
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
91
97
|
<component name="ChildScene" extends="Scene">
|
|
92
98
|
<script type="text/brightscript" uri="ChildScene.brs" />
|
|
@@ -95,58 +101,54 @@ describe('XmlFile', () => {
|
|
|
95
101
|
-->
|
|
96
102
|
</component>
|
|
97
103
|
`);
|
|
98
|
-
chai_1.expect((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.pkgPath).to.eql('pkg:/components/ChildScene.brs');
|
|
104
|
+
(0, chai_1.expect)((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.pkgPath).to.eql('pkg:/components/ChildScene.brs');
|
|
99
105
|
});
|
|
100
106
|
it('finds scripts when more than one per line', () => {
|
|
101
|
-
file =
|
|
102
|
-
file.parse(testHelpers_spec_1.trim `
|
|
107
|
+
const file = program.setFile('components/ChildScene.xml', (0, testHelpers_spec_1.trim) `
|
|
103
108
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
104
109
|
<component name="ChildScene" extends="Scene">
|
|
105
110
|
<script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
|
|
106
111
|
</component>
|
|
107
112
|
`);
|
|
108
|
-
chai_1.expect(file.scriptTagImports).to.be.lengthOf(3);
|
|
109
|
-
chai_1.expect(file.scriptTagImports[0]).to.deep.include({
|
|
113
|
+
(0, chai_1.expect)(file.scriptTagImports).to.be.lengthOf(3);
|
|
114
|
+
(0, chai_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
110
115
|
text: 'ChildScene1.brs',
|
|
111
116
|
filePathRange: vscode_languageserver_1.Range.create(2, 42, 2, 57)
|
|
112
117
|
});
|
|
113
|
-
chai_1.expect(file.scriptTagImports[1]).to.deep.include({
|
|
118
|
+
(0, chai_1.expect)(file.scriptTagImports[1]).to.deep.include({
|
|
114
119
|
text: 'ChildScene2.brs',
|
|
115
120
|
filePathRange: vscode_languageserver_1.Range.create(2, 100, 2, 115)
|
|
116
121
|
});
|
|
117
|
-
chai_1.expect(file.scriptTagImports[2]).to.deep.include({
|
|
122
|
+
(0, chai_1.expect)(file.scriptTagImports[2]).to.deep.include({
|
|
118
123
|
text: 'ChildScene3.brs',
|
|
119
124
|
filePathRange: vscode_languageserver_1.Range.create(2, 158, 2, 173)
|
|
120
125
|
});
|
|
121
126
|
});
|
|
122
127
|
it('finds component names', () => {
|
|
123
|
-
file =
|
|
124
|
-
file.parse(testHelpers_spec_1.trim `
|
|
128
|
+
const file = program.setFile('components/ChildScene.xml', (0, testHelpers_spec_1.trim) `
|
|
125
129
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
126
130
|
<component name="ChildScene" extends="ParentScene">
|
|
127
131
|
<script type="text/brightscript" uri="ChildScene.brs" />
|
|
128
132
|
</component>
|
|
129
133
|
`);
|
|
130
|
-
chai_1.expect(file.parentComponentName.text).to.equal('ParentScene');
|
|
131
|
-
chai_1.expect(file.componentName.text).to.equal('ChildScene');
|
|
134
|
+
(0, chai_1.expect)(file.parentComponentName.text).to.equal('ParentScene');
|
|
135
|
+
(0, chai_1.expect)(file.componentName.text).to.equal('ChildScene');
|
|
132
136
|
});
|
|
133
137
|
it('Adds error when whitespace appears before the prolog', () => {
|
|
134
|
-
file =
|
|
135
|
-
file.parse(/* not trimmed */ `
|
|
138
|
+
const file = program.setFile('components/ChildScene.xml', /* not trimmed */ `
|
|
136
139
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
137
140
|
<component name="ChildScene" extends="ParentScene">
|
|
138
141
|
<script type="text/brightscript" uri="ChildScene.brs" />
|
|
139
142
|
</component>`);
|
|
140
|
-
chai_1.expect(file.diagnostics).to.be.lengthOf(2);
|
|
141
|
-
chai_1.expect(file.diagnostics[0]).to.deep.include({
|
|
143
|
+
(0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
|
|
144
|
+
(0, chai_1.expect)(file.diagnostics[0]).to.deep.include({
|
|
142
145
|
code: DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code,
|
|
143
146
|
range: vscode_languageserver_1.Range.create(1, 16, 1, 22)
|
|
144
147
|
});
|
|
145
|
-
chai_1.expect(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: vscode_languageserver_1.Range.create(0, 0, 1, 16) }));
|
|
148
|
+
(0, chai_1.expect)(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: vscode_languageserver_1.Range.create(0, 0, 1, 16) }));
|
|
146
149
|
});
|
|
147
150
|
it('Adds error when an unknown tag is found in xml', () => {
|
|
148
|
-
file =
|
|
149
|
-
file.parse(testHelpers_spec_1.trim `
|
|
151
|
+
const file = program.setFile('components/ChildScene.xml', (0, testHelpers_spec_1.trim) `
|
|
150
152
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
151
153
|
<component name="ChildScene" extends="ParentScene">
|
|
152
154
|
<interface>
|
|
@@ -155,55 +157,55 @@ describe('XmlFile', () => {
|
|
|
155
157
|
<unexpectedToo />
|
|
156
158
|
</component>
|
|
157
159
|
`);
|
|
158
|
-
chai_1.expect(file.diagnostics).to.be.lengthOf(2);
|
|
159
|
-
chai_1.expect(file.diagnostics[0]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpected')), { range: vscode_languageserver_1.Range.create(3, 9, 3, 19) }));
|
|
160
|
-
chai_1.expect(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpectedToo')), { range: vscode_languageserver_1.Range.create(5, 5, 5, 18) }));
|
|
160
|
+
(0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
|
|
161
|
+
(0, chai_1.expect)(file.diagnostics[0]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpected')), { range: vscode_languageserver_1.Range.create(3, 9, 3, 19) }));
|
|
162
|
+
(0, chai_1.expect)(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpectedToo')), { range: vscode_languageserver_1.Range.create(5, 5, 5, 18) }));
|
|
161
163
|
});
|
|
162
164
|
it('Adds error when no component is declared in xml', () => {
|
|
163
|
-
|
|
165
|
+
program.setFile('components/comp.xml', '<script type="text/brightscript" uri="ChildScene.brs" />');
|
|
164
166
|
program.validate();
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
168
|
+
Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('script')), { range: vscode_languageserver_1.Range.create(0, 1, 0, 7) }),
|
|
169
|
+
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingComponentDeclaration()
|
|
170
|
+
]);
|
|
168
171
|
});
|
|
169
172
|
it('adds error when component does not declare a name', () => {
|
|
170
|
-
file = program.setFile('components/
|
|
173
|
+
const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
|
|
171
174
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
172
175
|
<component extends="ParentScene">
|
|
173
176
|
<script type="text/brightscript" uri="ChildScene.brs" />
|
|
174
177
|
</component>
|
|
175
178
|
`);
|
|
176
179
|
program.validate();
|
|
177
|
-
chai_1.expect(file.diagnostics).to.be.lengthOf(1);
|
|
178
|
-
chai_1.expect(file.diagnostics[0]).to.deep.include({
|
|
180
|
+
(0, chai_1.expect)(file.diagnostics).to.be.lengthOf(1);
|
|
181
|
+
(0, chai_1.expect)(file.diagnostics[0]).to.deep.include({
|
|
179
182
|
message: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingNameAttribute().message,
|
|
180
183
|
range: vscode_languageserver_1.Range.create(1, 1, 1, 10)
|
|
181
184
|
});
|
|
182
185
|
});
|
|
183
186
|
it('catches xml parse errors', () => {
|
|
184
|
-
file = program.setFile('components/
|
|
187
|
+
const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
|
|
185
188
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
186
189
|
<component 1extends="ParentScene">
|
|
187
190
|
</component>
|
|
188
191
|
`);
|
|
189
192
|
program.validate();
|
|
190
|
-
chai_1.expect(file.diagnostics).to.be.lengthOf(2);
|
|
191
|
-
chai_1.expect(file.diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code); //unexpected character '1'
|
|
192
|
-
chai_1.expect(file.diagnostics[1]).to.deep.include({
|
|
193
|
+
(0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
|
|
194
|
+
(0, chai_1.expect)(file.diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code); //unexpected character '1'
|
|
195
|
+
(0, chai_1.expect)(file.diagnostics[1]).to.deep.include({
|
|
193
196
|
code: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingNameAttribute().code,
|
|
194
197
|
range: vscode_languageserver_1.Range.create(1, 1, 1, 10)
|
|
195
198
|
});
|
|
196
199
|
});
|
|
197
200
|
it('finds script imports', () => {
|
|
198
|
-
file =
|
|
199
|
-
file.parse(testHelpers_spec_1.trim `
|
|
201
|
+
const file = program.setFile({ src: 'abspath/components/cmp1.xml', dest: 'components/cmp1.xml' }, (0, testHelpers_spec_1.trim) `
|
|
200
202
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
201
203
|
<component name="Cmp1" extends="Scene">
|
|
202
204
|
<script type="text/brightscript" uri="pkg:/components/cmp1.brs" />
|
|
203
205
|
</component>
|
|
204
206
|
`);
|
|
205
|
-
chai_1.expect(file.scriptTagImports.length).to.equal(1);
|
|
206
|
-
chai_1.expect(file.scriptTagImports[0]).to.deep.include({
|
|
207
|
+
(0, chai_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
208
|
+
(0, chai_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
207
209
|
sourceFile: file,
|
|
208
210
|
text: 'pkg:/components/cmp1.brs',
|
|
209
211
|
pkgPath: `pkg:/components/cmp1.brs`,
|
|
@@ -225,14 +227,14 @@ describe('XmlFile', () => {
|
|
|
225
227
|
file = program.setFile({
|
|
226
228
|
src: `${rootDir}/components/comp1.xml`,
|
|
227
229
|
dest: 'components/comp1.xml'
|
|
228
|
-
}, testHelpers_spec_1.trim `
|
|
230
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
229
231
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
230
232
|
<component name="Cmp1" extends="Scene">
|
|
231
233
|
<script type="text/brightscript" uri="cmp1.brs" />
|
|
232
234
|
</component>
|
|
233
235
|
`);
|
|
234
|
-
chai_1.expect(file.scriptTagImports.length).to.equal(1);
|
|
235
|
-
chai_1.expect(file.scriptTagImports[0]).to.deep.include({
|
|
236
|
+
(0, chai_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
237
|
+
(0, chai_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
236
238
|
text: 'cmp1.brs',
|
|
237
239
|
pkgPath: `pkg:/components/cmp1.brs`
|
|
238
240
|
});
|
|
@@ -242,14 +244,14 @@ describe('XmlFile', () => {
|
|
|
242
244
|
file = program.setFile({
|
|
243
245
|
src: `${rootDir}/components/comp1.xml`,
|
|
244
246
|
dest: 'components/comp1.xml'
|
|
245
|
-
}, testHelpers_spec_1.trim `
|
|
247
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
246
248
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
247
249
|
<component name="Cmp1" extends="Scene">
|
|
248
250
|
<script type="text/brightscript" uri="" />
|
|
249
251
|
</component>
|
|
250
252
|
`);
|
|
251
|
-
chai_1.expect(file.scriptTagImports.length).to.equal(1);
|
|
252
|
-
chai_1.expect((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.filePathRange).to.eql(vscode_languageserver_1.Range.create(2, 42, 2, 42));
|
|
253
|
+
(0, chai_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
254
|
+
(0, chai_1.expect)((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.filePathRange).to.eql(vscode_languageserver_1.Range.create(2, 42, 2, 42));
|
|
253
255
|
});
|
|
254
256
|
});
|
|
255
257
|
describe('doesReferenceFile', () => {
|
|
@@ -257,7 +259,7 @@ describe('XmlFile', () => {
|
|
|
257
259
|
let xmlFile = program.setFile({
|
|
258
260
|
src: `${rootDir}/components/comp1.xml`,
|
|
259
261
|
dest: 'components/comp1.xml'
|
|
260
|
-
}, testHelpers_spec_1.trim `
|
|
262
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
261
263
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
262
264
|
<component name="Cmp1" extends="Scene">
|
|
263
265
|
<script type="text/brightscript" uri="HeroGrid.brs" />
|
|
@@ -267,12 +269,12 @@ describe('XmlFile', () => {
|
|
|
267
269
|
src: `${rootDir}/components/HEROGRID.brs`,
|
|
268
270
|
dest: `components/HEROGRID.brs`
|
|
269
271
|
}, ``);
|
|
270
|
-
chai_1.expect(xmlFile.doesReferenceFile(brsFile)).to.be.true;
|
|
272
|
+
(0, chai_1.expect)(xmlFile.doesReferenceFile(brsFile)).to.be.true;
|
|
271
273
|
});
|
|
272
274
|
});
|
|
273
275
|
describe('autoImportComponentScript', () => {
|
|
274
276
|
it('is not enabled by default', () => {
|
|
275
|
-
program.setFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, testHelpers_spec_1.trim `
|
|
277
|
+
program.setFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, (0, testHelpers_spec_1.trim) `
|
|
276
278
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
277
279
|
<component name="ParentScene" extends="GrandparentScene">
|
|
278
280
|
<script type="text/brightscript" uri="./lib.brs" />
|
|
@@ -288,14 +290,16 @@ describe('XmlFile', () => {
|
|
|
288
290
|
end function
|
|
289
291
|
`);
|
|
290
292
|
program.validate();
|
|
291
|
-
|
|
293
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
294
|
+
DiagnosticMessages_1.DiagnosticMessages.fileNotReferencedByAnyOtherFile()
|
|
295
|
+
]);
|
|
292
296
|
});
|
|
293
297
|
it('is not enabled by default', () => {
|
|
294
298
|
program = new Program_1.Program({
|
|
295
299
|
rootDir: rootDir,
|
|
296
300
|
autoImportComponentScript: true
|
|
297
301
|
});
|
|
298
|
-
program.setFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, testHelpers_spec_1.trim `
|
|
302
|
+
program.setFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, (0, testHelpers_spec_1.trim) `
|
|
299
303
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
300
304
|
<component name="ParentScene" extends="GrandparentScene">
|
|
301
305
|
<script type="text/brightscript" uri="./lib.brs" />
|
|
@@ -312,13 +316,13 @@ describe('XmlFile', () => {
|
|
|
312
316
|
`);
|
|
313
317
|
program.validate();
|
|
314
318
|
//there should be no errors
|
|
315
|
-
|
|
319
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
316
320
|
});
|
|
317
321
|
});
|
|
318
322
|
describe('getCompletions', () => {
|
|
319
323
|
it('formats completion paths with proper slashes', () => {
|
|
320
324
|
program.setFile('pkg:/components/component1/component1.brs', '');
|
|
321
|
-
const xmlFile = program.setFile('components/component1/component1.xml', testHelpers_spec_1.trim `
|
|
325
|
+
const xmlFile = program.setFile('components/component1/component1.xml', (0, testHelpers_spec_1.trim) `
|
|
322
326
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
323
327
|
<component name="Component1" extends="Group">
|
|
324
328
|
</component
|
|
@@ -328,40 +332,40 @@ describe('XmlFile', () => {
|
|
|
328
332
|
text: 'component1.brs',
|
|
329
333
|
filePathRange: vscode_languageserver_1.Range.create(1, 1, 1, 1)
|
|
330
334
|
});
|
|
331
|
-
chai_1.expect(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[0]).to.include({
|
|
335
|
+
(0, chai_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[0]).to.include({
|
|
332
336
|
label: 'component1.brs',
|
|
333
337
|
kind: vscode_languageserver_1.CompletionItemKind.File
|
|
334
338
|
});
|
|
335
|
-
chai_1.expect(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[1]).to.include({
|
|
339
|
+
(0, chai_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[1]).to.include({
|
|
336
340
|
label: 'pkg:/components/component1/component1.brs',
|
|
337
341
|
kind: vscode_languageserver_1.CompletionItemKind.File
|
|
338
342
|
});
|
|
339
343
|
});
|
|
340
344
|
it('returns empty set when out of range', () => {
|
|
341
345
|
program.setFile({ src: `${rootDir}/components/Component1.brs`, dest: 'components/component1.brs' }, ``);
|
|
342
|
-
chai_1.expect(file.getCompletions(vscode_languageserver_1.Position.create(99, 99))).to.be.empty;
|
|
346
|
+
(0, chai_1.expect)(file.getCompletions(vscode_languageserver_1.Position.create(99, 99))).to.be.empty;
|
|
343
347
|
});
|
|
344
348
|
//TODO - refine this test once cdata scripts are supported
|
|
345
349
|
it('prevents scope completions entirely', () => {
|
|
346
350
|
program.setFile({ src: `${rootDir}/components/Component1.brs`, dest: 'components/component1.brs' }, ``);
|
|
347
|
-
let xmlFile = program.setFile({ src: `${rootDir}/components/Component1.xml`, dest: 'components/component1.xml' }, testHelpers_spec_1.trim `
|
|
351
|
+
let xmlFile = program.setFile({ src: `${rootDir}/components/Component1.xml`, dest: 'components/component1.xml' }, (0, testHelpers_spec_1.trim) `
|
|
348
352
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
349
353
|
<component name="ParentScene" extends="GrandparentScene">
|
|
350
354
|
<script type="text/brightscript" uri="./Component1.brs" />
|
|
351
355
|
</component>
|
|
352
356
|
`);
|
|
353
|
-
chai_1.expect(program.getCompletions(xmlFile.srcPath, vscode_languageserver_1.Position.create(1, 1))).to.be.empty;
|
|
357
|
+
(0, chai_1.expect)(program.getCompletions(xmlFile.srcPath, vscode_languageserver_1.Position.create(1, 1))).to.be.empty;
|
|
354
358
|
});
|
|
355
359
|
});
|
|
356
360
|
describe('getAllDependencies', () => {
|
|
357
361
|
it('returns own imports', () => {
|
|
358
|
-
file = program.setFile('components/comp1.xml', testHelpers_spec_1.trim `
|
|
362
|
+
file = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
|
|
359
363
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
360
364
|
<component name="ChildScene" extends="BaseScene">
|
|
361
365
|
<script type="text/brightscript" uri="pkg:/source/lib.brs" />
|
|
362
366
|
</component>
|
|
363
367
|
`);
|
|
364
|
-
chai_1.expect(file.getOwnDependencies().sort()).to.eql([
|
|
368
|
+
(0, chai_1.expect)(file.getOwnDependencies().sort()).to.eql([
|
|
365
369
|
'pkg:/source/lib.brs',
|
|
366
370
|
'pkg:/source/lib.d.bs'
|
|
367
371
|
]);
|
|
@@ -371,7 +375,7 @@ describe('XmlFile', () => {
|
|
|
371
375
|
let xmlFile = program.setFile({
|
|
372
376
|
src: `${rootDir}/components/comp1.xml`,
|
|
373
377
|
dest: `components/comp1.xml`
|
|
374
|
-
}, testHelpers_spec_1.trim `
|
|
378
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
375
379
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
376
380
|
<component name="ChildScene" extends="BaseScene">
|
|
377
381
|
<script type="text/brightscript" uri="pkg:/source/lib.bs" />
|
|
@@ -380,16 +384,16 @@ describe('XmlFile', () => {
|
|
|
380
384
|
program.validate();
|
|
381
385
|
let scope = program.getScopesForFile(xmlFile)[0];
|
|
382
386
|
//scope should be validated
|
|
383
|
-
chai_1.expect(scope.isValidated);
|
|
387
|
+
(0, chai_1.expect)(scope.isValidated);
|
|
384
388
|
//add lib1
|
|
385
389
|
program.setFile({
|
|
386
390
|
src: `${rootDir}/source/lib.bs`,
|
|
387
391
|
dest: `source/lib.bs`
|
|
388
392
|
}, ``);
|
|
389
393
|
//adding a dependent file should have invalidated the scope
|
|
390
|
-
chai_1.expect(scope.isValidated).to.be.false;
|
|
394
|
+
(0, chai_1.expect)(scope.isValidated).to.be.false;
|
|
391
395
|
program.validate();
|
|
392
|
-
chai_1.expect(scope.isValidated).to.be.true;
|
|
396
|
+
(0, chai_1.expect)(scope.isValidated).to.be.true;
|
|
393
397
|
//update lib1 to include an import
|
|
394
398
|
program.setFile({
|
|
395
399
|
src: `${rootDir}/source/lib.bs`,
|
|
@@ -398,26 +402,26 @@ describe('XmlFile', () => {
|
|
|
398
402
|
import "lib2.bs"
|
|
399
403
|
`);
|
|
400
404
|
//scope should have been invalidated again
|
|
401
|
-
chai_1.expect(scope.isValidated).to.be.false;
|
|
405
|
+
(0, chai_1.expect)(scope.isValidated).to.be.false;
|
|
402
406
|
program.validate();
|
|
403
|
-
chai_1.expect(scope.isValidated).to.be.true;
|
|
407
|
+
(0, chai_1.expect)(scope.isValidated).to.be.true;
|
|
404
408
|
//add the lib2 imported from lib
|
|
405
409
|
program.setFile({
|
|
406
410
|
src: `${rootDir}/source/lib2.bs`,
|
|
407
411
|
dest: `source/lib2.bs`
|
|
408
412
|
}, ``);
|
|
409
413
|
//scope should have been invalidated again because of chained dependency
|
|
410
|
-
chai_1.expect(scope.isValidated).to.be.false;
|
|
414
|
+
(0, chai_1.expect)(scope.isValidated).to.be.false;
|
|
411
415
|
program.validate();
|
|
412
|
-
chai_1.expect(scope.isValidated).to.be.true;
|
|
416
|
+
(0, chai_1.expect)(scope.isValidated).to.be.true;
|
|
413
417
|
program.removeFile(`${rootDir}/source/lib.bs`);
|
|
414
|
-
chai_1.expect(scope.isValidated).to.be.false;
|
|
418
|
+
(0, chai_1.expect)(scope.isValidated).to.be.false;
|
|
415
419
|
});
|
|
416
420
|
it('does not invalidate unrelated scopes on change', () => {
|
|
417
421
|
let xmlFile1 = program.setFile({
|
|
418
422
|
src: `${rootDir}/components/comp1.xml`,
|
|
419
423
|
dest: `components/comp1.xml`
|
|
420
|
-
}, testHelpers_spec_1.trim `
|
|
424
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
421
425
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
422
426
|
<component name="ChildScene1" extends="BaseScene">
|
|
423
427
|
<script type="text/brightscript" uri="pkg:/source/lib.brs" />
|
|
@@ -426,22 +430,22 @@ describe('XmlFile', () => {
|
|
|
426
430
|
let xmlFile2 = program.setFile({
|
|
427
431
|
src: `${rootDir}/components/comp2.xml`,
|
|
428
432
|
dest: `components/comp2.xml`
|
|
429
|
-
}, testHelpers_spec_1.trim `
|
|
433
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
430
434
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
431
435
|
<component name="ChildScene2" extends="BaseScene">
|
|
432
436
|
</component>
|
|
433
437
|
`);
|
|
434
438
|
program.validate();
|
|
435
439
|
//scope should be validated
|
|
436
|
-
chai_1.expect(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.true;
|
|
437
|
-
chai_1.expect(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
|
|
440
|
+
(0, chai_1.expect)(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.true;
|
|
441
|
+
(0, chai_1.expect)(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
|
|
438
442
|
//add the lib file
|
|
439
443
|
program.setFile({
|
|
440
444
|
src: `${rootDir}/source/lib.brs`,
|
|
441
445
|
dest: `source/lib.brs`
|
|
442
446
|
}, ``);
|
|
443
|
-
chai_1.expect(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.false;
|
|
444
|
-
chai_1.expect(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
|
|
447
|
+
(0, chai_1.expect)(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.false;
|
|
448
|
+
(0, chai_1.expect)(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
|
|
445
449
|
});
|
|
446
450
|
it('allows adding diagnostics', () => {
|
|
447
451
|
const expected = [{
|
|
@@ -450,62 +454,59 @@ describe('XmlFile', () => {
|
|
|
450
454
|
range: undefined
|
|
451
455
|
}];
|
|
452
456
|
file.addDiagnostics(expected);
|
|
453
|
-
|
|
454
|
-
chai_1.expect(actual).deep.equal(expected);
|
|
457
|
+
(0, testHelpers_spec_1.expectDiagnostics)(file, expected);
|
|
455
458
|
});
|
|
456
459
|
describe('component extends', () => {
|
|
457
460
|
it('works for single-line', () => {
|
|
458
461
|
file = program.setFile({
|
|
459
462
|
src: `${rootDir}/components/comp1.xml`,
|
|
460
463
|
dest: `components/comp1.xml`
|
|
461
|
-
}, testHelpers_spec_1.trim `
|
|
464
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
462
465
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
463
466
|
<component name="ChildScene" extends="BaseScene">
|
|
464
467
|
</component>
|
|
465
468
|
`);
|
|
466
|
-
chai_1.expect(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(1, 38, 1, 47));
|
|
469
|
+
(0, chai_1.expect)(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(1, 38, 1, 47));
|
|
467
470
|
});
|
|
468
471
|
it('works for multi-line', () => {
|
|
469
472
|
file = program.setFile({
|
|
470
473
|
src: `${rootDir}/components/comp1.xml`,
|
|
471
474
|
dest: `components/comp1.xml`
|
|
472
|
-
}, testHelpers_spec_1.trim `
|
|
475
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
473
476
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
474
477
|
<component name="ChildScene"
|
|
475
478
|
extends="BaseScene">
|
|
476
479
|
</component>
|
|
477
480
|
`);
|
|
478
|
-
chai_1.expect(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(2, 13, 2, 22));
|
|
481
|
+
(0, chai_1.expect)(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(2, 13, 2, 22));
|
|
479
482
|
});
|
|
480
483
|
it('does not throw when unable to find extends', () => {
|
|
481
484
|
file = program.setFile({
|
|
482
485
|
src: `${rootDir}/components/comp1.xml`,
|
|
483
486
|
dest: `components/comp1.xml`
|
|
484
|
-
}, testHelpers_spec_1.trim `
|
|
487
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
485
488
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
486
489
|
<component name="ChildScene">
|
|
487
490
|
</component>
|
|
488
491
|
`);
|
|
489
|
-
chai_1.expect(file.parentComponentName).to.not.exist;
|
|
492
|
+
(0, chai_1.expect)(file.parentComponentName).to.not.exist;
|
|
490
493
|
});
|
|
491
494
|
it('adds warning when no "extends" attribute is found', () => {
|
|
492
|
-
|
|
495
|
+
program.setFile({
|
|
493
496
|
src: `${rootDir}/components/comp1.xml`,
|
|
494
497
|
dest: `components/comp1.xml`
|
|
495
|
-
}, testHelpers_spec_1.trim `
|
|
498
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
496
499
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
497
500
|
<component name="ChildScene">
|
|
498
501
|
</component>
|
|
499
502
|
`);
|
|
500
503
|
program.validate();
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
});
|
|
504
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
505
|
+
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute()
|
|
506
|
+
]);
|
|
505
507
|
});
|
|
506
508
|
});
|
|
507
509
|
it('detects when importing the codebehind file unnecessarily', () => {
|
|
508
|
-
var _a;
|
|
509
510
|
program = new Program_1.Program({
|
|
510
511
|
autoImportComponentScript: true,
|
|
511
512
|
rootDir: rootDir
|
|
@@ -517,16 +518,50 @@ describe('XmlFile', () => {
|
|
|
517
518
|
program.setFile({
|
|
518
519
|
src: `${rootDir}/components/SimpleScene.xml`,
|
|
519
520
|
dest: `components/SimpleScene.xml`
|
|
520
|
-
}, testHelpers_spec_1.trim `
|
|
521
|
+
}, (0, testHelpers_spec_1.trim) `
|
|
521
522
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
522
523
|
<component name="SimpleScene" extends="Scene">
|
|
523
524
|
<script type="text/brighterscript" uri="SimpleScene.bs" />
|
|
524
525
|
</component>
|
|
525
526
|
`);
|
|
526
527
|
program.validate();
|
|
527
|
-
|
|
528
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
529
|
+
DiagnosticMessages_1.DiagnosticMessages.unnecessaryCodebehindScriptImport()
|
|
530
|
+
]);
|
|
528
531
|
});
|
|
529
532
|
describe('transpile', () => {
|
|
533
|
+
it('supports instantresume <customization> elements', async () => {
|
|
534
|
+
fsExtra.outputFileSync(`${rootDir}/manifest`, '');
|
|
535
|
+
fsExtra.outputFileSync(`${rootDir}/source/main.brs`, `sub main()\nend sub`);
|
|
536
|
+
fsExtra.outputFileSync(`${rootDir}/components/MainScene.xml`, (0, testHelpers_spec_1.trim) `
|
|
537
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
538
|
+
<component name="MainScene" extends="Scene">
|
|
539
|
+
<customization resumehandler="customResume" />
|
|
540
|
+
<customization suspendhandler="customSuspend" />
|
|
541
|
+
<children>
|
|
542
|
+
<Rectangle width="1920" height="1080" />
|
|
543
|
+
</children>
|
|
544
|
+
</component>
|
|
545
|
+
`);
|
|
546
|
+
const builder = new ProgramBuilder_1.ProgramBuilder();
|
|
547
|
+
await builder.run({
|
|
548
|
+
cwd: rootDir,
|
|
549
|
+
retainStagingFolder: true,
|
|
550
|
+
stagingFolderPath: stagingDir,
|
|
551
|
+
logLevel: Logger_1.LogLevel.off
|
|
552
|
+
});
|
|
553
|
+
(0, chai_1.expect)(fsExtra.readFileSync(`${stagingDir}/components/MainScene.xml`).toString()).to.eql((0, testHelpers_spec_1.trim) `
|
|
554
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
555
|
+
<component name="MainScene" extends="Scene">
|
|
556
|
+
<customization resumehandler="customResume" />
|
|
557
|
+
<customization suspendhandler="customSuspend" />
|
|
558
|
+
<children>
|
|
559
|
+
<Rectangle width="1920" height="1080" />
|
|
560
|
+
</children>
|
|
561
|
+
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
562
|
+
</component>
|
|
563
|
+
`);
|
|
564
|
+
});
|
|
530
565
|
it(`honors the 'needsTranspiled' flag when set in 'afterFileParse'`, () => {
|
|
531
566
|
program.plugins.add({
|
|
532
567
|
name: 'test',
|
|
@@ -535,19 +570,19 @@ describe('XmlFile', () => {
|
|
|
535
570
|
event.file.needsTranspiled = true;
|
|
536
571
|
}
|
|
537
572
|
});
|
|
538
|
-
const file = program.setFile('components/file.xml', testHelpers_spec_1.trim `
|
|
573
|
+
const file = program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
539
574
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
540
575
|
<component name="Comp" extends="Group">
|
|
541
576
|
</component>
|
|
542
577
|
`);
|
|
543
|
-
chai_1.expect(file.needsTranspiled).to.be.true;
|
|
578
|
+
(0, chai_1.expect)(file.needsTranspiled).to.be.true;
|
|
544
579
|
});
|
|
545
580
|
it('includes bslib script', () => {
|
|
546
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
581
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
547
582
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
548
583
|
<component name="Comp" extends="Group">
|
|
549
584
|
</component>
|
|
550
|
-
`, testHelpers_spec_1.trim `
|
|
585
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
551
586
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
552
587
|
<component name="Comp" extends="Group">
|
|
553
588
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
@@ -555,12 +590,12 @@ describe('XmlFile', () => {
|
|
|
555
590
|
`, 'none', 'components/Comp.xml');
|
|
556
591
|
});
|
|
557
592
|
it('does not include additional bslib script if already there ', () => {
|
|
558
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
593
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
559
594
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
560
595
|
<component name="Comp" extends="Group">
|
|
561
596
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
562
597
|
</component>
|
|
563
|
-
`, testHelpers_spec_1.trim `
|
|
598
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
564
599
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
565
600
|
<component name="Comp" extends="Group">
|
|
566
601
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
@@ -571,13 +606,13 @@ describe('XmlFile', () => {
|
|
|
571
606
|
program.setFile('source/roku_modules/bslib/bslib.brs', ``);
|
|
572
607
|
program.setFile('source/lib.bs', ``);
|
|
573
608
|
//include a bs file to force transpile for the xml file
|
|
574
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
609
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
575
610
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
576
611
|
<component name="Comp" extends="Group">
|
|
577
612
|
<script type="text/brightscript" uri="pkg:/source/lib.bs" />
|
|
578
613
|
<script type="text/brightscript" uri="pkg:/source/roku_modules/bslib/bslib.brs" />
|
|
579
614
|
</component>
|
|
580
|
-
`, testHelpers_spec_1.trim `
|
|
615
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
581
616
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
582
617
|
<component name="Comp" extends="Group">
|
|
583
618
|
<script type="text/brightscript" uri="pkg:/source/lib.brs" />
|
|
@@ -586,28 +621,28 @@ describe('XmlFile', () => {
|
|
|
586
621
|
`, 'none', 'components/child.xml');
|
|
587
622
|
});
|
|
588
623
|
it('does not transpile xml file when bslib script is already present', () => {
|
|
589
|
-
const file = program.setFile('components/comp.xml', testHelpers_spec_1.trim `
|
|
624
|
+
const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
|
|
590
625
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
591
626
|
<component name="Comp" extends="Group">
|
|
592
627
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
593
628
|
</component>
|
|
594
629
|
`);
|
|
595
630
|
program.validate();
|
|
596
|
-
testHelpers_spec_1.expectZeroDiagnostics(program);
|
|
597
|
-
chai_1.expect(file.needsTranspiled).to.be.false;
|
|
631
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
632
|
+
(0, chai_1.expect)(file.needsTranspiled).to.be.false;
|
|
598
633
|
});
|
|
599
634
|
/**
|
|
600
635
|
* There was a bug that would incorrectly replace one of the script paths on the second or third transpile, so this test verifies it doesn't do that anymore
|
|
601
636
|
*/
|
|
602
637
|
it('does not mangle scripts on multiple transpile', async () => {
|
|
603
638
|
program.setFile('components/SimpleScene.bs', ``);
|
|
604
|
-
program.setFile(`components/SimpleScene.xml`, testHelpers_spec_1.trim `
|
|
639
|
+
program.setFile(`components/SimpleScene.xml`, (0, testHelpers_spec_1.trim) `
|
|
605
640
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
606
641
|
<component name="SimpleScene" extends="Scene">
|
|
607
642
|
<script type="text/brightscript" uri="SimpleScene.bs" />
|
|
608
643
|
</component>
|
|
609
644
|
`);
|
|
610
|
-
const expected = testHelpers_spec_1.trim `
|
|
645
|
+
const expected = (0, testHelpers_spec_1.trim) `
|
|
611
646
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
612
647
|
<component name="SimpleScene" extends="Scene">
|
|
613
648
|
<script type="text/brightscript" uri="SimpleScene.brs" />
|
|
@@ -615,18 +650,18 @@ describe('XmlFile', () => {
|
|
|
615
650
|
</component>
|
|
616
651
|
`;
|
|
617
652
|
await program.transpile([], stagingDir);
|
|
618
|
-
chai_1.expect(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
|
|
653
|
+
(0, chai_1.expect)(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
|
|
619
654
|
//clear the output folder
|
|
620
655
|
fsExtra.emptyDirSync(stagingDir);
|
|
621
656
|
await program.transpile([], stagingDir);
|
|
622
|
-
chai_1.expect(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
|
|
657
|
+
(0, chai_1.expect)(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
|
|
623
658
|
});
|
|
624
659
|
it('keeps all content of the XML', () => {
|
|
625
660
|
program.setFile(`components/SimpleScene.bs`, `
|
|
626
661
|
sub b()
|
|
627
662
|
end sub
|
|
628
663
|
`);
|
|
629
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
664
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
630
665
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
631
666
|
<component
|
|
632
667
|
name="SimpleScene" extends="Scene"
|
|
@@ -644,7 +679,7 @@ describe('XmlFile', () => {
|
|
|
644
679
|
</aa>
|
|
645
680
|
</children>
|
|
646
681
|
</component>
|
|
647
|
-
`, testHelpers_spec_1.trim `
|
|
682
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
648
683
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
649
684
|
<component name="SimpleScene" extends="Scene" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd">
|
|
650
685
|
<interface>
|
|
@@ -666,12 +701,12 @@ describe('XmlFile', () => {
|
|
|
666
701
|
import "pkg:/source/lib.bs"
|
|
667
702
|
`);
|
|
668
703
|
program.setFile('source/lib.bs', ``);
|
|
669
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
704
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
670
705
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
671
706
|
<component name="SimpleScene" extends="Scene">
|
|
672
707
|
<script type="text/brighterscript" uri="SimpleScene.bs"/>
|
|
673
708
|
</component>
|
|
674
|
-
`, testHelpers_spec_1.trim `
|
|
709
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
675
710
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
676
711
|
<component name="SimpleScene" extends="Scene">
|
|
677
712
|
<script type="text/brightscript" uri="SimpleScene.brs" />
|
|
@@ -682,12 +717,12 @@ describe('XmlFile', () => {
|
|
|
682
717
|
});
|
|
683
718
|
it('does not fail on missing script type', () => {
|
|
684
719
|
program.setFile('components/SimpleScene.brs', '');
|
|
685
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
720
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
686
721
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
687
722
|
<component name="SimpleScene" extends="Scene">
|
|
688
723
|
<script uri="SimpleScene.brs"/>
|
|
689
724
|
</component>
|
|
690
|
-
`, testHelpers_spec_1.trim `
|
|
725
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
691
726
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
692
727
|
<component name="SimpleScene" extends="Scene">
|
|
693
728
|
<script uri="SimpleScene.brs" type="text/brightscript" />
|
|
@@ -696,7 +731,7 @@ describe('XmlFile', () => {
|
|
|
696
731
|
`, null, 'components/comp.xml');
|
|
697
732
|
});
|
|
698
733
|
it('returns the XML unmodified if needsTranspiled is false', () => {
|
|
699
|
-
let file = program.setFile('components/SimpleScene.xml', testHelpers_spec_1.trim `
|
|
734
|
+
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
700
735
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
701
736
|
<!-- should stay as-is -->
|
|
702
737
|
<component name="SimpleScene" extends="Scene" >
|
|
@@ -705,7 +740,7 @@ describe('XmlFile', () => {
|
|
|
705
740
|
`);
|
|
706
741
|
//prevent the default auto-imports to ensure no transpilation from AST
|
|
707
742
|
file.getMissingImportsForTranspile = () => [];
|
|
708
|
-
chai_1.expect(testHelpers_spec_1.trimMap(file.transpile().code)).to.equal(testHelpers_spec_1.trim `
|
|
743
|
+
(0, chai_1.expect)((0, testHelpers_spec_1.trimMap)(file.transpile().code)).to.equal((0, testHelpers_spec_1.trim) `
|
|
709
744
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
710
745
|
<!-- should stay as-is -->
|
|
711
746
|
<component name="SimpleScene" extends="Scene" >
|
|
@@ -714,26 +749,26 @@ describe('XmlFile', () => {
|
|
|
714
749
|
`);
|
|
715
750
|
});
|
|
716
751
|
it('needsTranspiled is false by default', () => {
|
|
717
|
-
let file = program.setFile('components/SimpleScene.xml', testHelpers_spec_1.trim `
|
|
752
|
+
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
718
753
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
719
754
|
<component name="SimpleScene" extends="Scene" >
|
|
720
755
|
</component>
|
|
721
756
|
`);
|
|
722
|
-
chai_1.expect(file.needsTranspiled).to.be.false;
|
|
757
|
+
(0, chai_1.expect)(file.needsTranspiled).to.be.false;
|
|
723
758
|
});
|
|
724
759
|
it('needsTranspiled is true if an import is brighterscript', () => {
|
|
725
|
-
let file = program.setFile('components/SimpleScene.xml', testHelpers_spec_1.trim `
|
|
760
|
+
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
726
761
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
727
762
|
<component name="SimpleScene" extends="Scene" >
|
|
728
763
|
<script type="text/brightscript" uri="SimpleScene.bs"/>
|
|
729
764
|
</component>
|
|
730
765
|
`);
|
|
731
766
|
program.validate();
|
|
732
|
-
chai_1.expect(file.needsTranspiled).to.be.true;
|
|
767
|
+
(0, chai_1.expect)(file.needsTranspiled).to.be.true;
|
|
733
768
|
});
|
|
734
769
|
it('simple source mapping includes sourcemap reference', () => {
|
|
735
770
|
program.options.sourceMap = true;
|
|
736
|
-
let file = program.setFile('components/SimpleScene.xml', testHelpers_spec_1.trim `
|
|
771
|
+
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
737
772
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
738
773
|
<component name="SimpleScene" extends="Scene">
|
|
739
774
|
</component>
|
|
@@ -741,18 +776,18 @@ describe('XmlFile', () => {
|
|
|
741
776
|
//prevent the default auto-imports to ensure no transpilation from AST
|
|
742
777
|
file.getMissingImportsForTranspile = () => [];
|
|
743
778
|
const code = file.transpile().code;
|
|
744
|
-
chai_1.expect(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
779
|
+
(0, chai_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
745
780
|
});
|
|
746
781
|
it('AST-based source mapping includes sourcemap reference', () => {
|
|
747
782
|
program.options.sourceMap = true;
|
|
748
|
-
let file = program.setFile('components/SimpleScene.xml', testHelpers_spec_1.trim `
|
|
783
|
+
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
749
784
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
750
785
|
<component name="SimpleScene" extends="Scene">
|
|
751
786
|
</component>
|
|
752
787
|
`);
|
|
753
788
|
file.needsTranspiled = true;
|
|
754
789
|
const code = file.transpile().code;
|
|
755
|
-
chai_1.expect(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
790
|
+
(0, chai_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
756
791
|
});
|
|
757
792
|
});
|
|
758
793
|
describe('Transform plugins', () => {
|
|
@@ -765,17 +800,19 @@ describe('XmlFile', () => {
|
|
|
765
800
|
name: 'Transform plugins',
|
|
766
801
|
afterFileParse: (event) => validateXml(event.file)
|
|
767
802
|
});
|
|
768
|
-
|
|
803
|
+
file = program.setFile('components/component.xml', (0, testHelpers_spec_1.trim) `
|
|
769
804
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
770
805
|
<component name="Cmp1" extends="Scene">
|
|
771
806
|
</component>
|
|
772
807
|
`);
|
|
808
|
+
program.validate();
|
|
809
|
+
return file;
|
|
773
810
|
}
|
|
774
811
|
it('Calls XML file validation plugins', () => {
|
|
775
812
|
const validateXml = sinon.spy();
|
|
776
813
|
const file = parseFileWithPlugins(validateXml);
|
|
777
|
-
chai_1.expect(validateXml.callCount).to.
|
|
778
|
-
chai_1.expect(validateXml.
|
|
814
|
+
(0, chai_1.expect)(validateXml.callCount).to.be.greaterThan(0);
|
|
815
|
+
(0, chai_1.expect)(validateXml.getCalls().flatMap(x => x.args)).to.include(file);
|
|
779
816
|
});
|
|
780
817
|
});
|
|
781
818
|
it('plugin diagnostics work for xml files', () => {
|
|
@@ -792,21 +829,20 @@ describe('XmlFile', () => {
|
|
|
792
829
|
}
|
|
793
830
|
}
|
|
794
831
|
});
|
|
795
|
-
program.setFile('components/comp.xml', testHelpers_spec_1.trim `
|
|
832
|
+
program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
|
|
796
833
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
797
834
|
<component name="Cmp1" extends="Scene">
|
|
798
835
|
</component>
|
|
799
836
|
`);
|
|
800
837
|
program.validate();
|
|
801
|
-
|
|
838
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [{
|
|
802
839
|
message: 'Test diagnostic',
|
|
803
840
|
code: 9999
|
|
804
841
|
}]);
|
|
805
842
|
});
|
|
806
843
|
describe('typedef', () => {
|
|
807
844
|
it('loads d.bs files from parent scope', () => {
|
|
808
|
-
|
|
809
|
-
program.setFile('components/ParentComponent.xml', testHelpers_spec_1.trim `
|
|
845
|
+
program.setFile('components/ParentComponent.xml', (0, testHelpers_spec_1.trim) `
|
|
810
846
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
811
847
|
<component name="ParentComponent" extends="Scene">
|
|
812
848
|
<script uri="ParentComponent.brs" />
|
|
@@ -833,7 +869,7 @@ describe('XmlFile', () => {
|
|
|
833
869
|
sub Lib_log()
|
|
834
870
|
end sub
|
|
835
871
|
`);
|
|
836
|
-
program.setFile('components/ChildComponent.xml', testHelpers_spec_1.trim `
|
|
872
|
+
program.setFile('components/ChildComponent.xml', (0, testHelpers_spec_1.trim) `
|
|
837
873
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
838
874
|
<component name="ChildComponent" extends="ParentComponent">
|
|
839
875
|
<script uri="ChildComponent.bs" />
|
|
@@ -846,15 +882,15 @@ describe('XmlFile', () => {
|
|
|
846
882
|
end sub
|
|
847
883
|
`);
|
|
848
884
|
program.validate();
|
|
849
|
-
|
|
885
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
850
886
|
const scope = program.getComponentScope('ChildComponent');
|
|
851
|
-
chai_1.expect(
|
|
887
|
+
(0, chai_1.expect)([...scope.namespaceLookup.keys()].sort()).to.eql([
|
|
852
888
|
'lib',
|
|
853
889
|
'parent'
|
|
854
890
|
]);
|
|
855
891
|
});
|
|
856
892
|
it('loads `d.bs` files into scope', () => {
|
|
857
|
-
const xmlFile = program.setFile('components/Component1.xml', testHelpers_spec_1.trim `
|
|
893
|
+
const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
|
|
858
894
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
859
895
|
<component name="Component1" extends="Scene">
|
|
860
896
|
<script uri="Component1.brs" />
|
|
@@ -864,7 +900,7 @@ describe('XmlFile', () => {
|
|
|
864
900
|
sub logInfo()
|
|
865
901
|
end sub
|
|
866
902
|
`);
|
|
867
|
-
chai_1.expect(program.getScopesForFile(xmlFile)[0].getAllCallables().map(x => x.callable.name)).to.include('logInfo');
|
|
903
|
+
(0, chai_1.expect)(program.getScopesForFile(xmlFile)[0].getAllCallables().map(x => x.callable.name)).to.include('logInfo');
|
|
868
904
|
});
|
|
869
905
|
it('does not include `d.bs` script during transpile', () => {
|
|
870
906
|
program.setFile('source/logger.d.bs', `
|
|
@@ -880,12 +916,12 @@ describe('XmlFile', () => {
|
|
|
880
916
|
sub init()
|
|
881
917
|
end sub
|
|
882
918
|
`);
|
|
883
|
-
testTranspile(testHelpers_spec_1.trim `
|
|
919
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
884
920
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
885
921
|
<component name="Component1" extends="Scene">
|
|
886
922
|
<script type="text/brighterscript" uri="Component1.bs" />
|
|
887
923
|
</component>
|
|
888
|
-
`, testHelpers_spec_1.trim `
|
|
924
|
+
`, (0, testHelpers_spec_1.trim) `
|
|
889
925
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
890
926
|
<component name="Component1" extends="Scene">
|
|
891
927
|
<script type="text/brightscript" uri="Component1.brs" />
|
|
@@ -895,7 +931,7 @@ describe('XmlFile', () => {
|
|
|
895
931
|
`, 'none', 'components/Component1.xml');
|
|
896
932
|
});
|
|
897
933
|
it('does not load .brs information into scope if related d.bs is in scope', () => {
|
|
898
|
-
const xmlFile = program.setFile('components/Component1.xml', testHelpers_spec_1.trim `
|
|
934
|
+
const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
|
|
899
935
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
900
936
|
<component name="Component1" extends="Scene">
|
|
901
937
|
<script uri="Component1.brs" />
|
|
@@ -910,20 +946,20 @@ describe('XmlFile', () => {
|
|
|
910
946
|
end sub
|
|
911
947
|
`);
|
|
912
948
|
let functionNames = scope.getAllCallables().map(x => x.callable.name);
|
|
913
|
-
chai_1.expect(functionNames).to.include('logInfo');
|
|
914
|
-
chai_1.expect(functionNames).to.include('logWarning');
|
|
949
|
+
(0, chai_1.expect)(functionNames).to.include('logInfo');
|
|
950
|
+
(0, chai_1.expect)(functionNames).to.include('logWarning');
|
|
915
951
|
//load d.bs file, which should shadow out the .brs file
|
|
916
952
|
program.setFile('components/Component1.d.bs', `
|
|
917
953
|
sub logError()
|
|
918
954
|
end sub
|
|
919
955
|
`);
|
|
920
956
|
functionNames = scope.getAllCallables().map(x => x.callable.name);
|
|
921
|
-
chai_1.expect(functionNames).to.include('logError');
|
|
922
|
-
chai_1.expect(functionNames).not.to.include('logInfo');
|
|
923
|
-
chai_1.expect(functionNames).not.to.include('logWarning');
|
|
957
|
+
(0, chai_1.expect)(functionNames).to.include('logError');
|
|
958
|
+
(0, chai_1.expect)(functionNames).not.to.include('logInfo');
|
|
959
|
+
(0, chai_1.expect)(functionNames).not.to.include('logWarning');
|
|
924
960
|
});
|
|
925
961
|
it('updates xml scope when typedef disappears', () => {
|
|
926
|
-
const xmlFile = program.setFile('components/Component1.xml', testHelpers_spec_1.trim `
|
|
962
|
+
const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
|
|
927
963
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
928
964
|
<component name="Component1" extends="Scene">
|
|
929
965
|
<script uri="Component1.brs" />
|
|
@@ -942,78 +978,89 @@ describe('XmlFile', () => {
|
|
|
942
978
|
`);
|
|
943
979
|
program.validate();
|
|
944
980
|
let functionNames = scope.getOwnCallables().map(x => x.callable.name);
|
|
945
|
-
chai_1.expect(functionNames).to.include('logTypedef');
|
|
946
|
-
chai_1.expect(functionNames).not.to.include('logBrs');
|
|
981
|
+
(0, chai_1.expect)(functionNames).to.include('logTypedef');
|
|
982
|
+
(0, chai_1.expect)(functionNames).not.to.include('logBrs');
|
|
947
983
|
//remove the typdef file
|
|
948
984
|
program.removeFile(typedef.srcPath);
|
|
949
985
|
program.validate();
|
|
950
986
|
functionNames = scope.getOwnCallables().map(x => x.callable.name);
|
|
951
|
-
chai_1.expect(functionNames).not.to.include('logTypedef');
|
|
952
|
-
chai_1.expect(functionNames).to.include('logBrs');
|
|
987
|
+
(0, chai_1.expect)(functionNames).not.to.include('logTypedef');
|
|
988
|
+
(0, chai_1.expect)(functionNames).to.include('logBrs');
|
|
953
989
|
});
|
|
954
990
|
});
|
|
955
991
|
it('finds script imports for single-quoted script tags', () => {
|
|
956
992
|
var _a;
|
|
957
|
-
const file = program.setFile('components/file.xml', testHelpers_spec_1.trim `
|
|
993
|
+
const file = program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
958
994
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
959
995
|
<component name="Cmp1" extends="Scene">
|
|
960
996
|
<script uri='SingleQuotedFile.brs' />
|
|
961
997
|
</component>
|
|
962
998
|
`);
|
|
963
|
-
chai_1.expect((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.text).to.eql('SingleQuotedFile.brs');
|
|
999
|
+
(0, chai_1.expect)((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.text).to.eql('SingleQuotedFile.brs');
|
|
964
1000
|
});
|
|
965
1001
|
describe('commentFlags', () => {
|
|
966
1002
|
it('ignores warning from previous line comment', () => {
|
|
967
1003
|
//component without a name attribute
|
|
968
|
-
program.setFile('components/file.xml', testHelpers_spec_1.trim `
|
|
1004
|
+
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
969
1005
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
970
1006
|
<!--bs:disable-next-line-->
|
|
971
1007
|
<component>
|
|
972
1008
|
</component>
|
|
973
1009
|
`);
|
|
974
1010
|
program.validate();
|
|
975
|
-
testHelpers_spec_1.expectZeroDiagnostics(program);
|
|
1011
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
976
1012
|
});
|
|
977
1013
|
it('ignores warning from previous line just for the specified code', () => {
|
|
978
1014
|
//component without a name attribute
|
|
979
|
-
program.setFile('components/file.xml', testHelpers_spec_1.trim `
|
|
1015
|
+
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
980
1016
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
981
1017
|
<!--bs:disable-next-line 1006-->
|
|
982
1018
|
<component>
|
|
983
1019
|
</component>
|
|
984
1020
|
`);
|
|
985
1021
|
program.validate();
|
|
986
|
-
|
|
987
|
-
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute()
|
|
1022
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
1023
|
+
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute()
|
|
988
1024
|
]);
|
|
989
1025
|
});
|
|
990
1026
|
it('ignores warning from previous line comment', () => {
|
|
991
1027
|
//component without a name attribute
|
|
992
|
-
program.setFile('components/file.xml', testHelpers_spec_1.trim `
|
|
1028
|
+
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
993
1029
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
994
1030
|
<component> <!--bs:disable-line-->
|
|
995
1031
|
</component>
|
|
996
1032
|
`);
|
|
997
1033
|
program.validate();
|
|
998
|
-
testHelpers_spec_1.expectZeroDiagnostics(program);
|
|
1034
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
999
1035
|
});
|
|
1000
1036
|
it('ignores warning from previous line just for the specified code', () => {
|
|
1001
1037
|
//component without a name attribute
|
|
1002
|
-
program.setFile('components/file.xml', testHelpers_spec_1.trim `
|
|
1038
|
+
program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
|
|
1003
1039
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1004
1040
|
<component> <!--bs:disable-line 1006-->
|
|
1005
1041
|
</component>
|
|
1006
1042
|
`);
|
|
1007
1043
|
program.validate();
|
|
1008
|
-
|
|
1009
|
-
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute()
|
|
1044
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
1045
|
+
DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute()
|
|
1010
1046
|
]);
|
|
1011
1047
|
});
|
|
1012
1048
|
});
|
|
1049
|
+
it('includes single quotes in transpiled output', () => {
|
|
1050
|
+
testTranspile((0, testHelpers_spec_1.trim) `
|
|
1051
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
1052
|
+
<component name="Cmp1" extends="Scene">
|
|
1053
|
+
<interface>
|
|
1054
|
+
<field id="test" type="assocarray" value='{"testA":"testA"}' />
|
|
1055
|
+
</interface>
|
|
1056
|
+
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
1057
|
+
</component>
|
|
1058
|
+
`, undefined, 'none', 'components/file.xml');
|
|
1059
|
+
});
|
|
1013
1060
|
describe('duplicate components', () => {
|
|
1014
1061
|
it('more gracefully handles multiple components with the same name', () => {
|
|
1015
1062
|
program.setFile('components/comp1.brs', ``);
|
|
1016
|
-
program.setFile('components/comp1.xml', testHelpers_spec_1.trim `
|
|
1063
|
+
program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
|
|
1017
1064
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1018
1065
|
<component name="comp1" extends="Group">
|
|
1019
1066
|
<script uri="comp1.brs" />
|
|
@@ -1021,44 +1068,44 @@ describe('XmlFile', () => {
|
|
|
1021
1068
|
`);
|
|
1022
1069
|
//add another component with the same name
|
|
1023
1070
|
program.setFile('components/comp2.brs', ``);
|
|
1024
|
-
program.setFile('components/comp2.xml', testHelpers_spec_1.trim `
|
|
1071
|
+
program.setFile('components/comp2.xml', (0, testHelpers_spec_1.trim) `
|
|
1025
1072
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1026
1073
|
<component name="comp1" extends="Group">
|
|
1027
1074
|
<script uri="comp2.brs" />
|
|
1028
1075
|
</component>
|
|
1029
1076
|
`);
|
|
1030
1077
|
program.validate();
|
|
1031
|
-
|
|
1032
|
-
DiagnosticMessages_1.DiagnosticMessages.duplicateComponentName('comp1')
|
|
1033
|
-
DiagnosticMessages_1.DiagnosticMessages.duplicateComponentName('comp1')
|
|
1078
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
1079
|
+
DiagnosticMessages_1.DiagnosticMessages.duplicateComponentName('comp1'),
|
|
1080
|
+
DiagnosticMessages_1.DiagnosticMessages.duplicateComponentName('comp1')
|
|
1034
1081
|
]);
|
|
1035
1082
|
});
|
|
1036
1083
|
it('maintains consistent component selection', () => {
|
|
1037
1084
|
//add comp2 first
|
|
1038
|
-
const comp2 = program.setFile('components/comp2.xml', testHelpers_spec_1.trim `
|
|
1085
|
+
const comp2 = program.setFile('components/comp2.xml', (0, testHelpers_spec_1.trim) `
|
|
1039
1086
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1040
1087
|
<component name="comp1">
|
|
1041
1088
|
</component>
|
|
1042
1089
|
`);
|
|
1043
|
-
chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1090
|
+
(0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1044
1091
|
//add comp1. it should become the main component with this name
|
|
1045
|
-
const comp1 = program.setFile('components/comp1.xml', testHelpers_spec_1.trim `
|
|
1092
|
+
const comp1 = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
|
|
1046
1093
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1047
1094
|
<component name="comp1" extends="Group">
|
|
1048
1095
|
</component>
|
|
1049
1096
|
`);
|
|
1050
|
-
chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp1.pkgPath);
|
|
1097
|
+
(0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp1.pkgPath);
|
|
1051
1098
|
//remove comp1, comp2 should be the primary again
|
|
1052
|
-
program.removeFile(util_1.standardizePath `${rootDir}/components/comp1.xml`);
|
|
1053
|
-
chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1099
|
+
program.removeFile((0, util_1.standardizePath) `${rootDir}/components/comp1.xml`);
|
|
1100
|
+
(0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1054
1101
|
//add comp3
|
|
1055
|
-
program.setFile('components/comp3.xml', testHelpers_spec_1.trim `
|
|
1102
|
+
program.setFile('components/comp3.xml', (0, testHelpers_spec_1.trim) `
|
|
1056
1103
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1057
1104
|
<component name="comp1">
|
|
1058
1105
|
</component>
|
|
1059
1106
|
`);
|
|
1060
1107
|
//...the 2nd file should still be main
|
|
1061
|
-
chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1108
|
+
(0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1062
1109
|
});
|
|
1063
1110
|
});
|
|
1064
1111
|
});
|