brighterscript 0.59.0 → 0.60.1
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 +19 -0
- package/README.md +8 -4
- package/dist/CommentFlagProcessor.d.ts +1 -1
- package/dist/CommentFlagProcessor.js +1 -1
- package/dist/DependencyGraph.d.ts +3 -2
- package/dist/DependencyGraph.js +3 -2
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticFilterer.js +1 -2
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +6 -1
- package/dist/DiagnosticMessages.js +6 -1
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/FunctionScope.d.ts +1 -1
- package/dist/FunctionScope.js +1 -1
- package/dist/KeyedThrottler.d.ts +3 -3
- package/dist/KeyedThrottler.js +3 -3
- package/dist/KeyedThrottler.js.map +1 -1
- package/dist/LanguageServer.d.ts +0 -7
- package/dist/LanguageServer.js +0 -7
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Program.d.ts +5 -7
- package/dist/Program.js +11 -213
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +0 -1
- package/dist/ProgramBuilder.js +0 -1
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +31 -33
- package/dist/Scope.js +47 -33
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.d.ts +0 -3
- package/dist/SymbolTable.js +0 -3
- package/dist/SymbolTable.js.map +1 -1
- package/dist/Watcher.d.ts +0 -3
- package/dist/Watcher.js +0 -3
- package/dist/Watcher.js.map +1 -1
- package/dist/astUtils/AstEditor.d.ts +1 -1
- package/dist/astUtils/AstEditor.js +1 -1
- package/dist/astUtils/AstEditor.spec.js +58 -58
- package/dist/astUtils/AstEditor.spec.js.map +1 -1
- package/dist/astUtils/creators.spec.js +5 -5
- package/dist/astUtils/creators.spec.js.map +1 -1
- package/dist/astUtils/reflection.spec.js +112 -112
- package/dist/astUtils/reflection.spec.js.map +1 -1
- package/dist/astUtils/stackedVisitor.spec.js +12 -12
- package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +4 -0
- package/dist/astUtils/visitors.js +4 -0
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/visitors.spec.js +21 -21
- package/dist/astUtils/visitors.spec.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +35 -0
- package/dist/bscPlugin/CallExpressionInfo.js +131 -0
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
- package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
- package/dist/bscPlugin/SignatureHelpUtil.js +135 -0
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +7 -7
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +27 -27
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +2 -2
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +1 -2
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +11 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +39 -9
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +11 -11
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +8 -20
- package/dist/files/BrsFile.js +16 -97
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +245 -187
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +1 -4
- package/dist/files/XmlFile.js +1 -4
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +82 -82
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +7 -7
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/lexer/Character.spec.js +5 -5
- package/dist/lexer/Character.spec.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +0 -5
- package/dist/lexer/Lexer.js +0 -5
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +136 -136
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/parser/AstNode.d.ts +1 -1
- package/dist/parser/AstNode.spec.js +3 -3
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +60 -60
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +4 -4
- package/dist/parser/Parser.js +5 -8
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +229 -221
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.spec.js +14 -14
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +3 -2
- package/dist/parser/Statement.js +12 -5
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/Statement.spec.js +29 -11
- package/dist/parser/Statement.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/For.spec.js +15 -15
- package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +13 -13
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/If.spec.js +93 -93
- package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
- package/dist/parser/tests/controlFlow/While.spec.js +12 -12
- package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
- package/dist/parser/tests/expression/Additive.spec.js +8 -8
- package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +26 -26
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +27 -27
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
- package/dist/parser/tests/expression/Boolean.spec.js +8 -8
- package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
- package/dist/parser/tests/expression/Call.spec.js +45 -45
- package/dist/parser/tests/expression/Call.spec.js.map +1 -1
- package/dist/parser/tests/expression/Exponential.spec.js +5 -5
- package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
- package/dist/parser/tests/expression/Function.spec.js +36 -36
- package/dist/parser/tests/expression/Function.spec.js.map +1 -1
- package/dist/parser/tests/expression/Indexing.spec.js +29 -29
- package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +34 -34
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Primary.spec.js +12 -12
- package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
- package/dist/parser/tests/expression/Relational.spec.js +13 -13
- package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +10 -10
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +53 -53
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +6 -6
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Continue.spec.js +4 -4
- package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
- package/dist/parser/tests/statement/Declaration.spec.js +19 -19
- package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
- package/dist/parser/tests/statement/Dim.spec.js +22 -22
- package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +14 -14
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/Function.spec.js +35 -35
- package/dist/parser/tests/statement/Function.spec.js.map +1 -1
- package/dist/parser/tests/statement/Goto.spec.js +5 -5
- package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
- package/dist/parser/tests/statement/Increment.spec.js +20 -20
- package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Misc.spec.js +20 -20
- package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +16 -16
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +9 -9
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
- package/dist/parser/tests/statement/Set.spec.js +22 -22
- package/dist/parser/tests/statement/Set.spec.js.map +1 -1
- package/dist/parser/tests/statement/Stop.spec.js +6 -6
- package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
- package/dist/parser/tests/statement/Throw.spec.js +6 -6
- package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +15 -15
- package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
- package/dist/preprocessor/Manifest.spec.js +8 -8
- package/dist/preprocessor/Manifest.spec.js.map +1 -1
- package/dist/preprocessor/Preprocessor.d.ts +2 -2
- package/dist/preprocessor/Preprocessor.js +2 -2
- package/dist/preprocessor/Preprocessor.spec.js +25 -25
- package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
- package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
- package/dist/preprocessor/PreprocessorParser.js +1 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
- package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
- package/dist/types/ArrayType.spec.js +9 -9
- package/dist/types/ArrayType.spec.js.map +1 -1
- package/dist/types/BooleanType.spec.js +3 -3
- package/dist/types/BooleanType.spec.js.map +1 -1
- package/dist/types/DoubleType.spec.js +3 -3
- package/dist/types/DoubleType.spec.js.map +1 -1
- package/dist/types/DynamicType.d.ts +0 -1
- package/dist/types/DynamicType.js +0 -1
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/DynamicType.spec.js +3 -3
- package/dist/types/DynamicType.spec.js.map +1 -1
- package/dist/types/FloatType.spec.js +3 -3
- package/dist/types/FloatType.spec.js.map +1 -1
- package/dist/types/FunctionType.spec.js +6 -6
- package/dist/types/FunctionType.spec.js.map +1 -1
- package/dist/types/IntegerType.spec.js +3 -3
- package/dist/types/IntegerType.spec.js.map +1 -1
- package/dist/types/InterfaceType.spec.js +8 -8
- package/dist/types/InterfaceType.spec.js.map +1 -1
- package/dist/types/InvalidType.spec.js +3 -3
- package/dist/types/InvalidType.spec.js.map +1 -1
- package/dist/types/LongIntegerType.spec.js +3 -3
- package/dist/types/LongIntegerType.spec.js.map +1 -1
- package/dist/types/ObjectType.spec.js +3 -3
- package/dist/types/ObjectType.spec.js.map +1 -1
- package/dist/types/StringType.spec.js +3 -3
- package/dist/types/StringType.spec.js.map +1 -1
- package/dist/types/VoidType.spec.js +3 -3
- package/dist/types/VoidType.spec.js.map +1 -1
- package/dist/util.d.ts +21 -43
- package/dist/util.js +26 -54
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const chai_config_spec_1 = require("../chai-config.spec");
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const sinonImport = require("sinon");
|
|
6
6
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
@@ -48,7 +48,7 @@ describe('XmlFile', () => {
|
|
|
48
48
|
<component name="ChildScene" extends="Scene">
|
|
49
49
|
</component>
|
|
50
50
|
`);
|
|
51
|
-
(0,
|
|
51
|
+
(0, chai_config_spec_1.expect)(file.componentName.text).to.equal(expected);
|
|
52
52
|
});
|
|
53
53
|
it('only removes specified attribute when calling setAttribute', () => {
|
|
54
54
|
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
@@ -56,13 +56,13 @@ describe('XmlFile', () => {
|
|
|
56
56
|
name: 'allows modifying the parsed XML model',
|
|
57
57
|
afterFileParse: () => {
|
|
58
58
|
let child = file.parser.ast.component.children.children[0];
|
|
59
|
-
(0,
|
|
59
|
+
(0, chai_config_spec_1.expect)(child.attributes).to.have.lengthOf(4);
|
|
60
60
|
child.setAttribute('text', undefined);
|
|
61
|
-
(0,
|
|
62
|
-
(0,
|
|
61
|
+
(0, chai_config_spec_1.expect)(child.getAttribute('id').value.text).to.equal('one');
|
|
62
|
+
(0, chai_config_spec_1.expect)(child.attributes).to.have.lengthOf(3);
|
|
63
63
|
child.setAttribute('text3', undefined);
|
|
64
|
-
(0,
|
|
65
|
-
(0,
|
|
64
|
+
(0, chai_config_spec_1.expect)(child.getAttribute('id').value.text).to.equal('one');
|
|
65
|
+
(0, chai_config_spec_1.expect)(child.attributes).to.have.lengthOf(2);
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
file.parse((0, testHelpers_spec_1.trim) `
|
|
@@ -86,7 +86,7 @@ describe('XmlFile', () => {
|
|
|
86
86
|
<script type="text/brightscript" uri="ChildScene.bs" />
|
|
87
87
|
</component>
|
|
88
88
|
`);
|
|
89
|
-
(0,
|
|
89
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports.map(x => x.pkgPath)[0]).to.equal((0, util_1.standardizePath) `components/ChildScene.bs`);
|
|
90
90
|
});
|
|
91
91
|
it('does not include commented-out script imports', () => {
|
|
92
92
|
var _a, _b;
|
|
@@ -99,7 +99,7 @@ describe('XmlFile', () => {
|
|
|
99
99
|
-->
|
|
100
100
|
</component>
|
|
101
101
|
`);
|
|
102
|
-
(0,
|
|
102
|
+
(0, chai_config_spec_1.expect)((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.pkgPath).to.eql((0, util_1.standardizePath) `components/ChildScene.brs`);
|
|
103
103
|
});
|
|
104
104
|
it('finds scripts when more than one per line', () => {
|
|
105
105
|
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
@@ -109,16 +109,16 @@ describe('XmlFile', () => {
|
|
|
109
109
|
<script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
|
|
110
110
|
</component>
|
|
111
111
|
`);
|
|
112
|
-
(0,
|
|
113
|
-
(0,
|
|
112
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports).to.be.lengthOf(3);
|
|
113
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
114
114
|
text: 'ChildScene1.brs',
|
|
115
115
|
filePathRange: vscode_languageserver_1.Range.create(2, 42, 2, 57)
|
|
116
116
|
});
|
|
117
|
-
(0,
|
|
117
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports[1]).to.deep.include({
|
|
118
118
|
text: 'ChildScene2.brs',
|
|
119
119
|
filePathRange: vscode_languageserver_1.Range.create(2, 100, 2, 115)
|
|
120
120
|
});
|
|
121
|
-
(0,
|
|
121
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports[2]).to.deep.include({
|
|
122
122
|
text: 'ChildScene3.brs',
|
|
123
123
|
filePathRange: vscode_languageserver_1.Range.create(2, 158, 2, 173)
|
|
124
124
|
});
|
|
@@ -131,8 +131,8 @@ describe('XmlFile', () => {
|
|
|
131
131
|
<script type="text/brightscript" uri="ChildScene.brs" />
|
|
132
132
|
</component>
|
|
133
133
|
`);
|
|
134
|
-
(0,
|
|
135
|
-
(0,
|
|
134
|
+
(0, chai_config_spec_1.expect)(file.parentComponentName.text).to.equal('ParentScene');
|
|
135
|
+
(0, chai_config_spec_1.expect)(file.componentName.text).to.equal('ChildScene');
|
|
136
136
|
});
|
|
137
137
|
it('Adds error when whitespace appears before the prolog', () => {
|
|
138
138
|
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
@@ -141,12 +141,12 @@ describe('XmlFile', () => {
|
|
|
141
141
|
<component name="ChildScene" extends="ParentScene">
|
|
142
142
|
<script type="text/brightscript" uri="ChildScene.brs" />
|
|
143
143
|
</component>`);
|
|
144
|
-
(0,
|
|
145
|
-
(0,
|
|
144
|
+
(0, chai_config_spec_1.expect)(file.diagnostics).to.be.lengthOf(2);
|
|
145
|
+
(0, chai_config_spec_1.expect)(file.diagnostics[0]).to.deep.include({
|
|
146
146
|
code: DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code,
|
|
147
147
|
range: vscode_languageserver_1.Range.create(1, 16, 1, 22)
|
|
148
148
|
});
|
|
149
|
-
(0,
|
|
149
|
+
(0, chai_config_spec_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) }));
|
|
150
150
|
});
|
|
151
151
|
it('Adds error when an unknown tag is found in xml', () => {
|
|
152
152
|
file = new XmlFile_1.XmlFile('abs', 'rel', program);
|
|
@@ -159,9 +159,9 @@ describe('XmlFile', () => {
|
|
|
159
159
|
<unexpectedToo />
|
|
160
160
|
</component>
|
|
161
161
|
`);
|
|
162
|
-
(0,
|
|
163
|
-
(0,
|
|
164
|
-
(0,
|
|
162
|
+
(0, chai_config_spec_1.expect)(file.diagnostics).to.be.lengthOf(2);
|
|
163
|
+
(0, chai_config_spec_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) }));
|
|
164
|
+
(0, chai_config_spec_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) }));
|
|
165
165
|
});
|
|
166
166
|
it('Adds error when no component is declared in xml', () => {
|
|
167
167
|
program.setFile('components/comp.xml', '<script type="text/brightscript" uri="ChildScene.brs" />');
|
|
@@ -179,8 +179,8 @@ describe('XmlFile', () => {
|
|
|
179
179
|
</component>
|
|
180
180
|
`);
|
|
181
181
|
program.validate();
|
|
182
|
-
(0,
|
|
183
|
-
(0,
|
|
182
|
+
(0, chai_config_spec_1.expect)(file.diagnostics).to.be.lengthOf(1);
|
|
183
|
+
(0, chai_config_spec_1.expect)(file.diagnostics[0]).to.deep.include({
|
|
184
184
|
message: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingNameAttribute().message,
|
|
185
185
|
range: vscode_languageserver_1.Range.create(1, 1, 1, 10)
|
|
186
186
|
});
|
|
@@ -192,9 +192,9 @@ describe('XmlFile', () => {
|
|
|
192
192
|
</component>
|
|
193
193
|
`);
|
|
194
194
|
program.validate();
|
|
195
|
-
(0,
|
|
196
|
-
(0,
|
|
197
|
-
(0,
|
|
195
|
+
(0, chai_config_spec_1.expect)(file.diagnostics).to.be.lengthOf(2);
|
|
196
|
+
(0, chai_config_spec_1.expect)(file.diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code); //unexpected character '1'
|
|
197
|
+
(0, chai_config_spec_1.expect)(file.diagnostics[1]).to.deep.include({
|
|
198
198
|
code: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingNameAttribute().code,
|
|
199
199
|
range: vscode_languageserver_1.Range.create(1, 1, 1, 10)
|
|
200
200
|
});
|
|
@@ -207,8 +207,8 @@ describe('XmlFile', () => {
|
|
|
207
207
|
<script type="text/brightscript" uri="pkg:/components/cmp1.brs" />
|
|
208
208
|
</component>
|
|
209
209
|
`);
|
|
210
|
-
(0,
|
|
211
|
-
(0,
|
|
210
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
211
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
212
212
|
sourceFile: file,
|
|
213
213
|
text: 'pkg:/components/cmp1.brs',
|
|
214
214
|
pkgPath: `components${path.sep}cmp1.brs`,
|
|
@@ -220,7 +220,7 @@ describe('XmlFile', () => {
|
|
|
220
220
|
file.parse('a comment');
|
|
221
221
|
try {
|
|
222
222
|
file.parse(`'a new comment`);
|
|
223
|
-
|
|
223
|
+
chai_config_spec_1.assert.fail(null, null, 'Should have thrown an exception, but did not');
|
|
224
224
|
}
|
|
225
225
|
catch (e) {
|
|
226
226
|
//test passes
|
|
@@ -233,8 +233,8 @@ describe('XmlFile', () => {
|
|
|
233
233
|
<script type="text/brightscript" uri="cmp1.brs" />
|
|
234
234
|
</component>
|
|
235
235
|
`);
|
|
236
|
-
(0,
|
|
237
|
-
(0,
|
|
236
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
237
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports[0]).to.deep.include({
|
|
238
238
|
text: 'cmp1.brs',
|
|
239
239
|
pkgPath: `components${path.sep}cmp1.brs`
|
|
240
240
|
});
|
|
@@ -247,8 +247,8 @@ describe('XmlFile', () => {
|
|
|
247
247
|
<script type="text/brightscript" uri="" />
|
|
248
248
|
</component>
|
|
249
249
|
`);
|
|
250
|
-
(0,
|
|
251
|
-
(0,
|
|
250
|
+
(0, chai_config_spec_1.expect)(file.scriptTagImports.length).to.equal(1);
|
|
251
|
+
(0, chai_config_spec_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));
|
|
252
252
|
});
|
|
253
253
|
});
|
|
254
254
|
describe('doesReferenceFile', () => {
|
|
@@ -260,7 +260,7 @@ describe('XmlFile', () => {
|
|
|
260
260
|
</component>
|
|
261
261
|
`);
|
|
262
262
|
let brsFile = program.setFile(`components/HEROGRID.brs`, ``);
|
|
263
|
-
(0,
|
|
263
|
+
(0, chai_config_spec_1.expect)(xmlFile.doesReferenceFile(brsFile)).to.be.true;
|
|
264
264
|
});
|
|
265
265
|
});
|
|
266
266
|
describe('autoImportComponentScript', () => {
|
|
@@ -320,18 +320,18 @@ describe('XmlFile', () => {
|
|
|
320
320
|
text: 'component1.brs',
|
|
321
321
|
filePathRange: vscode_languageserver_1.Range.create(1, 1, 1, 1)
|
|
322
322
|
});
|
|
323
|
-
(0,
|
|
323
|
+
(0, chai_config_spec_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[0]).to.include({
|
|
324
324
|
label: 'component1.brs',
|
|
325
325
|
kind: vscode_languageserver_1.CompletionItemKind.File
|
|
326
326
|
});
|
|
327
|
-
(0,
|
|
327
|
+
(0, chai_config_spec_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[1]).to.include({
|
|
328
328
|
label: 'pkg:/components/component1/component1.brs',
|
|
329
329
|
kind: vscode_languageserver_1.CompletionItemKind.File
|
|
330
330
|
});
|
|
331
331
|
});
|
|
332
332
|
it('returns empty set when out of range', () => {
|
|
333
333
|
program.setFile('components/component1.brs', ``);
|
|
334
|
-
(0,
|
|
334
|
+
(0, chai_config_spec_1.expect)(file.getCompletions(vscode_languageserver_1.Position.create(99, 99))).to.be.empty;
|
|
335
335
|
});
|
|
336
336
|
//TODO - refine this test once cdata scripts are supported
|
|
337
337
|
it('prevents scope completions entirely', () => {
|
|
@@ -342,7 +342,7 @@ describe('XmlFile', () => {
|
|
|
342
342
|
<script type="text/brightscript" uri="./Component1.brs" />
|
|
343
343
|
</component>
|
|
344
344
|
`);
|
|
345
|
-
(0,
|
|
345
|
+
(0, chai_config_spec_1.expect)(program.getCompletions(xmlFile.srcPath, vscode_languageserver_1.Position.create(1, 1))).to.be.empty;
|
|
346
346
|
});
|
|
347
347
|
});
|
|
348
348
|
describe('getAllDependencies', () => {
|
|
@@ -353,7 +353,7 @@ describe('XmlFile', () => {
|
|
|
353
353
|
<script type="text/brightscript" uri="pkg:/source/lib.brs" />
|
|
354
354
|
</component>
|
|
355
355
|
`);
|
|
356
|
-
(0,
|
|
356
|
+
(0, chai_config_spec_1.expect)(file.getOwnDependencies().sort()).to.eql([
|
|
357
357
|
(0, util_1.standardizePath) `source/lib.brs`,
|
|
358
358
|
(0, util_1.standardizePath) `source/lib.d.bs`
|
|
359
359
|
]);
|
|
@@ -372,29 +372,29 @@ describe('XmlFile', () => {
|
|
|
372
372
|
program.validate();
|
|
373
373
|
let scope = program.getScopesForFile(xmlFile)[0];
|
|
374
374
|
//scope should be validated
|
|
375
|
-
(0,
|
|
375
|
+
(0, chai_config_spec_1.expect)(scope.isValidated);
|
|
376
376
|
//add lib1
|
|
377
377
|
program.setFile(`source/lib.bs`, ``);
|
|
378
378
|
//adding a dependent file should have invalidated the scope
|
|
379
|
-
(0,
|
|
379
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.false;
|
|
380
380
|
program.validate();
|
|
381
|
-
(0,
|
|
381
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.true;
|
|
382
382
|
//update lib1 to include an import
|
|
383
383
|
program.setFile(`source/lib.bs`, `
|
|
384
384
|
import "lib2.bs"
|
|
385
385
|
`);
|
|
386
386
|
//scope should have been invalidated again
|
|
387
|
-
(0,
|
|
387
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.false;
|
|
388
388
|
program.validate();
|
|
389
|
-
(0,
|
|
389
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.true;
|
|
390
390
|
//add the lib2 imported from lib
|
|
391
391
|
program.setFile(`source/lib2.bs`, ``);
|
|
392
392
|
//scope should have been invalidated again because of chained dependency
|
|
393
|
-
(0,
|
|
393
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.false;
|
|
394
394
|
program.validate();
|
|
395
|
-
(0,
|
|
395
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.true;
|
|
396
396
|
program.removeFile(`${testHelpers_spec_2.rootDir}/source/lib.bs`);
|
|
397
|
-
(0,
|
|
397
|
+
(0, chai_config_spec_1.expect)(scope.isValidated).to.be.false;
|
|
398
398
|
});
|
|
399
399
|
it('does not invalidate unrelated scopes on change', () => {
|
|
400
400
|
let xmlFile1 = program.setFile({
|
|
@@ -416,12 +416,12 @@ describe('XmlFile', () => {
|
|
|
416
416
|
`);
|
|
417
417
|
program.validate();
|
|
418
418
|
//scope should be validated
|
|
419
|
-
(0,
|
|
420
|
-
(0,
|
|
419
|
+
(0, chai_config_spec_1.expect)(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.true;
|
|
420
|
+
(0, chai_config_spec_1.expect)(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
|
|
421
421
|
//add the lib file
|
|
422
422
|
program.setFile(`source/lib.brs`, ``);
|
|
423
|
-
(0,
|
|
424
|
-
(0,
|
|
423
|
+
(0, chai_config_spec_1.expect)(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.false;
|
|
424
|
+
(0, chai_config_spec_1.expect)(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
|
|
425
425
|
});
|
|
426
426
|
it('allows adding diagnostics', () => {
|
|
427
427
|
const expected = [{
|
|
@@ -442,7 +442,7 @@ describe('XmlFile', () => {
|
|
|
442
442
|
<component name="ChildScene" extends="BaseScene">
|
|
443
443
|
</component>
|
|
444
444
|
`);
|
|
445
|
-
(0,
|
|
445
|
+
(0, chai_config_spec_1.expect)(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(1, 38, 1, 47));
|
|
446
446
|
});
|
|
447
447
|
it('works for multi-line', () => {
|
|
448
448
|
file = program.setFile({
|
|
@@ -454,7 +454,7 @@ describe('XmlFile', () => {
|
|
|
454
454
|
extends="BaseScene">
|
|
455
455
|
</component>
|
|
456
456
|
`);
|
|
457
|
-
(0,
|
|
457
|
+
(0, chai_config_spec_1.expect)(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(2, 13, 2, 22));
|
|
458
458
|
});
|
|
459
459
|
it('does not throw when unable to find extends', () => {
|
|
460
460
|
file = program.setFile({
|
|
@@ -465,7 +465,7 @@ describe('XmlFile', () => {
|
|
|
465
465
|
<component name="ChildScene">
|
|
466
466
|
</component>
|
|
467
467
|
`);
|
|
468
|
-
(0,
|
|
468
|
+
(0, chai_config_spec_1.expect)(file.parentComponentName).to.not.exist;
|
|
469
469
|
});
|
|
470
470
|
it('adds warning when no "extends" attribute is found', () => {
|
|
471
471
|
program.setFile({
|
|
@@ -538,7 +538,7 @@ describe('XmlFile', () => {
|
|
|
538
538
|
stagingDir: testHelpers_spec_2.stagingDir,
|
|
539
539
|
logLevel: Logger_1.LogLevel.off
|
|
540
540
|
});
|
|
541
|
-
(0,
|
|
541
|
+
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trim)(fsExtra.readFileSync(`${testHelpers_spec_2.stagingDir}/components/MainScene.xml`).toString())).to.eql((0, testHelpers_spec_1.trim) `
|
|
542
542
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
543
543
|
<component name="MainScene" extends="Scene">
|
|
544
544
|
<script type="text/brightscript" uri="pkg:/source/bslib.brs" />
|
|
@@ -563,7 +563,7 @@ describe('XmlFile', () => {
|
|
|
563
563
|
<component name="Comp" extends="Group">
|
|
564
564
|
</component>
|
|
565
565
|
`);
|
|
566
|
-
(0,
|
|
566
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.true;
|
|
567
567
|
});
|
|
568
568
|
it('includes bslib script', () => {
|
|
569
569
|
testTranspile((0, testHelpers_spec_1.trim) `
|
|
@@ -617,7 +617,7 @@ describe('XmlFile', () => {
|
|
|
617
617
|
`);
|
|
618
618
|
program.validate();
|
|
619
619
|
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
620
|
-
(0,
|
|
620
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.false;
|
|
621
621
|
});
|
|
622
622
|
/**
|
|
623
623
|
* 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
|
|
@@ -638,11 +638,11 @@ describe('XmlFile', () => {
|
|
|
638
638
|
</component>
|
|
639
639
|
`;
|
|
640
640
|
await program.transpile([], testHelpers_spec_2.stagingDir);
|
|
641
|
-
(0,
|
|
641
|
+
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trim)(fsExtra.readFileSync(`${testHelpers_spec_2.stagingDir}/components/SimpleScene.xml`).toString())).to.eql(expected);
|
|
642
642
|
//clear the output folder
|
|
643
643
|
fsExtra.emptyDirSync(testHelpers_spec_2.stagingDir);
|
|
644
644
|
await program.transpile([], testHelpers_spec_2.stagingDir);
|
|
645
|
-
(0,
|
|
645
|
+
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trim)(fsExtra.readFileSync(`${testHelpers_spec_2.stagingDir}/components/SimpleScene.xml`).toString())).to.eql(expected);
|
|
646
646
|
});
|
|
647
647
|
it('keeps all content of the XML', () => {
|
|
648
648
|
program.setFile(`components/SimpleScene.bs`, `
|
|
@@ -728,7 +728,7 @@ describe('XmlFile', () => {
|
|
|
728
728
|
`);
|
|
729
729
|
//prevent the default auto-imports to ensure no transpilation from AST
|
|
730
730
|
file.getMissingImportsForTranspile = () => [];
|
|
731
|
-
(0,
|
|
731
|
+
(0, chai_config_spec_1.expect)((0, testHelpers_spec_1.trimMap)(file.transpile().code)).to.equal((0, testHelpers_spec_1.trim) `
|
|
732
732
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
733
733
|
<!-- should stay as-is -->
|
|
734
734
|
<component name="SimpleScene" extends="Scene" >
|
|
@@ -742,7 +742,7 @@ describe('XmlFile', () => {
|
|
|
742
742
|
<component name="SimpleScene" extends="Scene" >
|
|
743
743
|
</component>
|
|
744
744
|
`);
|
|
745
|
-
(0,
|
|
745
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.false;
|
|
746
746
|
});
|
|
747
747
|
it('needsTranspiled is true if an import is brighterscript', () => {
|
|
748
748
|
let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
|
|
@@ -751,7 +751,7 @@ describe('XmlFile', () => {
|
|
|
751
751
|
<script type="text/brightscript" uri="SimpleScene.bs"/>
|
|
752
752
|
</component>
|
|
753
753
|
`);
|
|
754
|
-
(0,
|
|
754
|
+
(0, chai_config_spec_1.expect)(file.needsTranspiled).to.be.true;
|
|
755
755
|
});
|
|
756
756
|
it('simple source mapping includes sourcemap reference', () => {
|
|
757
757
|
program.options.sourceMap = true;
|
|
@@ -763,7 +763,7 @@ describe('XmlFile', () => {
|
|
|
763
763
|
//prevent the default auto-imports to ensure no transpilation from AST
|
|
764
764
|
file.getMissingImportsForTranspile = () => [];
|
|
765
765
|
const code = file.transpile().code;
|
|
766
|
-
(0,
|
|
766
|
+
(0, chai_config_spec_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
767
767
|
});
|
|
768
768
|
it('AST-based source mapping includes sourcemap reference', () => {
|
|
769
769
|
program.options.sourceMap = true;
|
|
@@ -774,7 +774,7 @@ describe('XmlFile', () => {
|
|
|
774
774
|
`);
|
|
775
775
|
file.needsTranspiled = true;
|
|
776
776
|
const code = file.transpile().code;
|
|
777
|
-
(0,
|
|
777
|
+
(0, chai_config_spec_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
|
|
778
778
|
});
|
|
779
779
|
});
|
|
780
780
|
describe('Transform plugins', () => {
|
|
@@ -798,8 +798,8 @@ describe('XmlFile', () => {
|
|
|
798
798
|
it('Calls XML file validation plugins', () => {
|
|
799
799
|
const validateXml = sinon.spy();
|
|
800
800
|
const file = parseFileWithPlugins(validateXml);
|
|
801
|
-
(0,
|
|
802
|
-
(0,
|
|
801
|
+
(0, chai_config_spec_1.expect)(validateXml.callCount).to.be.greaterThan(0);
|
|
802
|
+
(0, chai_config_spec_1.expect)(validateXml.getCalls().flatMap(x => x.args)).to.include(file);
|
|
803
803
|
});
|
|
804
804
|
});
|
|
805
805
|
it('plugin diagnostics work for xml files', () => {
|
|
@@ -871,7 +871,7 @@ describe('XmlFile', () => {
|
|
|
871
871
|
program.validate();
|
|
872
872
|
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
873
873
|
const scope = program.getComponentScope('ChildComponent');
|
|
874
|
-
(0,
|
|
874
|
+
(0, chai_config_spec_1.expect)([...scope.namespaceLookup.keys()].sort()).to.eql([
|
|
875
875
|
'lib',
|
|
876
876
|
'parent'
|
|
877
877
|
]);
|
|
@@ -887,7 +887,7 @@ describe('XmlFile', () => {
|
|
|
887
887
|
sub logInfo()
|
|
888
888
|
end sub
|
|
889
889
|
`);
|
|
890
|
-
(0,
|
|
890
|
+
(0, chai_config_spec_1.expect)(program.getScopesForFile(xmlFile)[0].getAllCallables().map(x => x.callable.name)).to.include('logInfo');
|
|
891
891
|
});
|
|
892
892
|
it('does not include `d.bs` script during transpile', () => {
|
|
893
893
|
program.setFile('source/logger.d.bs', `
|
|
@@ -933,17 +933,17 @@ describe('XmlFile', () => {
|
|
|
933
933
|
end sub
|
|
934
934
|
`);
|
|
935
935
|
let functionNames = scope.getAllCallables().map(x => x.callable.name);
|
|
936
|
-
(0,
|
|
937
|
-
(0,
|
|
936
|
+
(0, chai_config_spec_1.expect)(functionNames).to.include('logInfo');
|
|
937
|
+
(0, chai_config_spec_1.expect)(functionNames).to.include('logWarning');
|
|
938
938
|
//load d.bs file, which should shadow out the .brs file
|
|
939
939
|
program.setFile('components/Component1.d.bs', `
|
|
940
940
|
sub logError()
|
|
941
941
|
end sub
|
|
942
942
|
`);
|
|
943
943
|
functionNames = scope.getAllCallables().map(x => x.callable.name);
|
|
944
|
-
(0,
|
|
945
|
-
(0,
|
|
946
|
-
(0,
|
|
944
|
+
(0, chai_config_spec_1.expect)(functionNames).to.include('logError');
|
|
945
|
+
(0, chai_config_spec_1.expect)(functionNames).not.to.include('logInfo');
|
|
946
|
+
(0, chai_config_spec_1.expect)(functionNames).not.to.include('logWarning');
|
|
947
947
|
});
|
|
948
948
|
it('updates xml scope when typedef disappears', () => {
|
|
949
949
|
const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
|
|
@@ -965,14 +965,14 @@ describe('XmlFile', () => {
|
|
|
965
965
|
`);
|
|
966
966
|
program.validate();
|
|
967
967
|
let functionNames = scope.getOwnCallables().map(x => x.callable.name);
|
|
968
|
-
(0,
|
|
969
|
-
(0,
|
|
968
|
+
(0, chai_config_spec_1.expect)(functionNames).to.include('logTypedef');
|
|
969
|
+
(0, chai_config_spec_1.expect)(functionNames).not.to.include('logBrs');
|
|
970
970
|
//remove the typdef file
|
|
971
971
|
program.removeFile(typedef.srcPath);
|
|
972
972
|
program.validate();
|
|
973
973
|
functionNames = scope.getOwnCallables().map(x => x.callable.name);
|
|
974
|
-
(0,
|
|
975
|
-
(0,
|
|
974
|
+
(0, chai_config_spec_1.expect)(functionNames).not.to.include('logTypedef');
|
|
975
|
+
(0, chai_config_spec_1.expect)(functionNames).to.include('logBrs');
|
|
976
976
|
});
|
|
977
977
|
});
|
|
978
978
|
it('finds script imports for single-quoted script tags', () => {
|
|
@@ -983,7 +983,7 @@ describe('XmlFile', () => {
|
|
|
983
983
|
<script uri='SingleQuotedFile.brs' />
|
|
984
984
|
</component>
|
|
985
985
|
`);
|
|
986
|
-
(0,
|
|
986
|
+
(0, chai_config_spec_1.expect)((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.text).to.eql('SingleQuotedFile.brs');
|
|
987
987
|
});
|
|
988
988
|
describe('commentFlags', () => {
|
|
989
989
|
it('ignores warning from previous line comment', () => {
|
|
@@ -1063,17 +1063,17 @@ describe('XmlFile', () => {
|
|
|
1063
1063
|
<component name="comp1">
|
|
1064
1064
|
</component>
|
|
1065
1065
|
`);
|
|
1066
|
-
(0,
|
|
1066
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1067
1067
|
//add comp1. it should become the main component with this name
|
|
1068
1068
|
const comp1 = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
|
|
1069
1069
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
1070
1070
|
<component name="comp1" extends="Group">
|
|
1071
1071
|
</component>
|
|
1072
1072
|
`);
|
|
1073
|
-
(0,
|
|
1073
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp1.pkgPath);
|
|
1074
1074
|
//remove comp1, comp2 should be the primary again
|
|
1075
1075
|
program.removeFile((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/components/comp1.xml`);
|
|
1076
|
-
(0,
|
|
1076
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1077
1077
|
//add comp3
|
|
1078
1078
|
program.setFile('components/comp3.xml', (0, testHelpers_spec_1.trim) `
|
|
1079
1079
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
@@ -1081,7 +1081,7 @@ describe('XmlFile', () => {
|
|
|
1081
1081
|
</component>
|
|
1082
1082
|
`);
|
|
1083
1083
|
//...the 2nd file should still be main
|
|
1084
|
-
(0,
|
|
1084
|
+
(0, chai_config_spec_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
|
|
1085
1085
|
});
|
|
1086
1086
|
});
|
|
1087
1087
|
});
|