rooibos-roku 5.0.1 → 5.1.0
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/dist/lib/framework/BaseTestSuite.bs +15 -10
- package/dist/lib/framework/CommonUtils.bs +51 -3
- package/dist/lib/rooibos/RooibosSession.js +20 -17
- package/dist/lib/rooibos/RooibosSession.js.map +1 -1
- package/dist/lib/rooibos/TestGroup.js +58 -0
- package/dist/lib/rooibos/TestGroup.js.map +1 -1
- package/dist/lib/rooibos/Utils.js +4 -4
- package/dist/plugin.js +9 -3
- package/dist/plugin.js.map +1 -1
- package/package.json +1 -1
|
@@ -900,7 +900,7 @@ namespace rooibos
|
|
|
900
900
|
end if
|
|
901
901
|
else if Rooibos.Common.isString(item)
|
|
902
902
|
if Rooibos.Common.asString(item) <> ""
|
|
903
|
-
msg = "
|
|
903
|
+
msg = "String is not empty, contains: " + Rooibos.Common.asString(item, true)
|
|
904
904
|
m.currentResult.fail(msg, m.currentAssertLineNumber)
|
|
905
905
|
return false
|
|
906
906
|
end if
|
|
@@ -1612,23 +1612,22 @@ namespace rooibos
|
|
|
1612
1612
|
end try
|
|
1613
1613
|
end function
|
|
1614
1614
|
|
|
1615
|
-
function expectCalled(invocation as dynamic, returnValue = invalid as dynamic
|
|
1615
|
+
function expectCalled(invocation as dynamic, returnValue = invalid as dynamic) as object
|
|
1616
1616
|
'mock function body - the plugin replaces this
|
|
1617
1617
|
return invalid
|
|
1618
1618
|
end function
|
|
1619
1619
|
|
|
1620
|
-
function _expectCalled(target, methodName,
|
|
1620
|
+
function _expectCalled(target, methodName, rootObject = invalid as dynamic, fullPath = invalid as dynamic, expectedArgs = invalid, returnValue = invalid as dynamic) as object
|
|
1621
1621
|
try
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
mock.toThrow(thrownError)
|
|
1622
|
+
if fullPath <> invalid
|
|
1623
|
+
target = rooibos.Common.makePathStubbable(rootObject, fullPath)
|
|
1625
1624
|
end if
|
|
1625
|
+
return m.mock(target, methodName, 1, expectedArgs, returnValue, true)
|
|
1626
1626
|
catch error
|
|
1627
1627
|
'bs:disable-next-line
|
|
1628
1628
|
m.currentResult.fail("Setting up mock failed: " + error.message, m.currentAssertLineNumber)
|
|
1629
|
-
return false
|
|
1630
1629
|
end try
|
|
1631
|
-
return
|
|
1630
|
+
return invalid
|
|
1632
1631
|
end function
|
|
1633
1632
|
|
|
1634
1633
|
function stubCall(invocation as dynamic, returnValue = invalid as dynamic) as object
|
|
@@ -1636,8 +1635,11 @@ namespace rooibos
|
|
|
1636
1635
|
return invalid
|
|
1637
1636
|
end function
|
|
1638
1637
|
|
|
1639
|
-
function _stubCall(target, methodName, returnValue = invalid as dynamic) as object
|
|
1638
|
+
function _stubCall(target, methodName, rootObject = invalid as dynamic, fullPath = invalid as dynamic, returnValue = invalid as dynamic) as object
|
|
1640
1639
|
try
|
|
1640
|
+
if fullPath <> invalid
|
|
1641
|
+
target = rooibos.Common.makePathStubbable(rootObject, fullPath)
|
|
1642
|
+
end if
|
|
1641
1643
|
return m.stub(target, methodName, returnValue, true)
|
|
1642
1644
|
catch error
|
|
1643
1645
|
'bs:disable-next-line
|
|
@@ -1652,8 +1654,11 @@ namespace rooibos
|
|
|
1652
1654
|
return invalid
|
|
1653
1655
|
end function
|
|
1654
1656
|
|
|
1655
|
-
function _expectNotCalled(target, methodName) as object
|
|
1657
|
+
function _expectNotCalled(target, methodName, rootObject = invalid as dynamic, fullPath = invalid as dynamic) as object
|
|
1656
1658
|
try
|
|
1659
|
+
if fullPath <> invalid
|
|
1660
|
+
target = rooibos.Common.makePathStubbable(rootObject, fullPath)
|
|
1661
|
+
end if
|
|
1657
1662
|
return m.mock(target, methodName, 0, invalid, invalid, true)
|
|
1658
1663
|
catch error
|
|
1659
1664
|
'bs:disable-next-line
|
|
@@ -305,13 +305,13 @@ namespace rooibos.Common
|
|
|
305
305
|
' */
|
|
306
306
|
function asString(input, includeType = false) as string
|
|
307
307
|
if Rooibos.Common.isValid(input) = false
|
|
308
|
+
return "INVALID"
|
|
309
|
+
else if Rooibos.Common.isString(input)
|
|
308
310
|
if includeType
|
|
309
311
|
return """" + input + """"
|
|
310
312
|
else
|
|
311
313
|
return input
|
|
312
314
|
end if
|
|
313
|
-
else if Rooibos.Common.isString(input)
|
|
314
|
-
return """" + input + """"
|
|
315
315
|
else if Rooibos.Common.isInteger(input) or Rooibos.Common.isLongInteger(input) or Rooibos.Common.isBoolean(input)
|
|
316
316
|
if includeType
|
|
317
317
|
return input.ToStr() + " (" + Rooibos.Common.getSafeType(input) + ")"
|
|
@@ -645,7 +645,7 @@ namespace rooibos.Common
|
|
|
645
645
|
Value1 = cdbl(Value1)
|
|
646
646
|
end if
|
|
647
647
|
|
|
648
|
-
if val1Type <> val2Type and fuzzy <> true
|
|
648
|
+
if val1Type <> val2Type and (fuzzy <> true or val1Type = "String" or val2Type = "String")
|
|
649
649
|
return false
|
|
650
650
|
else
|
|
651
651
|
valtype = val1Type
|
|
@@ -792,4 +792,52 @@ namespace rooibos.Common
|
|
|
792
792
|
return text
|
|
793
793
|
end function
|
|
794
794
|
|
|
795
|
+
function makePathStubbable(content as dynamic, path as string)
|
|
796
|
+
part = invalid
|
|
797
|
+
|
|
798
|
+
if path <> invalid
|
|
799
|
+
parts = path.split(".")
|
|
800
|
+
numParts = parts.count()
|
|
801
|
+
i = 0
|
|
802
|
+
|
|
803
|
+
contentName = parts[i]
|
|
804
|
+
i++
|
|
805
|
+
if type(content) <> "roAssociativeArray"
|
|
806
|
+
content = {id: contentName}
|
|
807
|
+
end if
|
|
808
|
+
part = content
|
|
809
|
+
while i < numParts and part <> invalid
|
|
810
|
+
isIndexNumber = parts[i] = "0" or (parts[i].toInt() <> 0 and parts[i].toInt().toStr() = parts[i])
|
|
811
|
+
if isIndexNumber
|
|
812
|
+
index = parts[i].toInt()
|
|
813
|
+
else
|
|
814
|
+
index = parts[i]
|
|
815
|
+
end if
|
|
816
|
+
|
|
817
|
+
if rooibos.Common.isArray(part) and isIndexNumber
|
|
818
|
+
nextPart = part[index]
|
|
819
|
+
else if type(part) = "roAssociativeArray" and not isIndexNumber
|
|
820
|
+
nextPart = part[index]
|
|
821
|
+
else
|
|
822
|
+
nextPart = invalid
|
|
823
|
+
end if
|
|
824
|
+
|
|
825
|
+
if nextPart = invalid or type(nextPart) <> "roAssociativeArray"
|
|
826
|
+
if (not isIndexNumber and type(part) = "roAssociativeArray") or (isIndexNumber and (rooibos.Common.isArray(part)))
|
|
827
|
+
nextPart = { id: index }
|
|
828
|
+
part[index] = nextPart
|
|
829
|
+
else
|
|
830
|
+
'index type mismatch, gonna have to bail
|
|
831
|
+
return content
|
|
832
|
+
end if
|
|
833
|
+
end if
|
|
834
|
+
part = nextPart
|
|
835
|
+
i++
|
|
836
|
+
end while
|
|
837
|
+
|
|
838
|
+
end if
|
|
839
|
+
return part
|
|
840
|
+
end function
|
|
841
|
+
|
|
842
|
+
|
|
795
843
|
end namespace
|
|
@@ -115,25 +115,28 @@ class RooibosSession {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
createNodeFiles(program) {
|
|
118
|
-
let p = path.join('components', 'rooibos', 'generated');
|
|
119
118
|
for (let suite of this.sessionInfo.testSuitesToRun.filter((s) => s.isNodeTest)) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
m.top.rooibosTestResult = nodeRunner.runInNodeMode("${suite.name}")
|
|
133
|
-
end function
|
|
134
|
-
`);
|
|
135
|
-
brsFile.parser.invalidateReferences();
|
|
119
|
+
this.createNodeFile(program, suite);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
createNodeFile(program, suite) {
|
|
123
|
+
let p = path.join('components', 'rooibos', 'generated');
|
|
124
|
+
let xmlText = this.getNodeTestXmlText(suite);
|
|
125
|
+
let bsPath = path.join(p, `${suite.generatedNodeName}.bs`);
|
|
126
|
+
this.fileFactory.addFile(program, path.join(p, `${suite.generatedNodeName}.xml`), xmlText);
|
|
127
|
+
let bsFile = program.getFile(bsPath);
|
|
128
|
+
if (bsFile) {
|
|
129
|
+
bsFile.parser.statements.push();
|
|
130
|
+
bsFile.needsTranspiled = true;
|
|
136
131
|
}
|
|
132
|
+
let brsFile = this.fileFactory.addFile(program, bsPath, undent_1.default `
|
|
133
|
+
import "pkg:/${suite.file.pkgPath}"
|
|
134
|
+
function init()
|
|
135
|
+
nodeRunner = Rooibos_TestRunner(m.top.getScene(), m)
|
|
136
|
+
m.top.rooibosTestResult = nodeRunner.runInNodeMode("${suite.name}")
|
|
137
|
+
end function
|
|
138
|
+
`);
|
|
139
|
+
brsFile.parser.invalidateReferences();
|
|
137
140
|
}
|
|
138
141
|
getNodeTestXmlText(suite) {
|
|
139
142
|
return this.fileFactory.createTestXML(suite.generatedNodeName, suite.nodeName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RooibosSession.js","sourceRoot":"","sources":["../../../src/lib/rooibos/RooibosSession.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RooibosSession.js","sourceRoot":"","sources":["../../../src/lib/rooibos/RooibosSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,21 +89,27 @@ class TestGroup extends TestSuite_1.TestBlock {
|
|
|
89
89
|
let arg0 = callExpression.args[0];
|
|
90
90
|
if (brighterscript.isCallExpression(arg0) && brighterscript_1.isDottedGetExpression(arg0.callee)) {
|
|
91
91
|
let functionName = arg0.callee.name.text;
|
|
92
|
+
let fullPath = this.getStringPathFromDottedGet(arg0.callee.obj);
|
|
92
93
|
editor.removeFromArray(callExpression.args, 0);
|
|
93
94
|
if (!isNotCalled && !isStubCall) {
|
|
94
95
|
const expectedArgs = new brighterscript_1.ArrayLiteralExpression(arg0.args, brighterscript_1.createToken(brighterscript_1.TokenKind.LeftSquareBracket), brighterscript_1.createToken(brighterscript_1.TokenKind.RightSquareBracket));
|
|
95
96
|
editor.addToArray(callExpression.args, 0, expectedArgs);
|
|
96
97
|
}
|
|
98
|
+
editor.addToArray(callExpression.args, 0, fullPath !== null && fullPath !== void 0 ? fullPath : brighterscript_1.createInvalidLiteral());
|
|
99
|
+
editor.addToArray(callExpression.args, 0, this.getRootObjectFromDottedGet(arg0.callee));
|
|
97
100
|
editor.addToArray(callExpression.args, 0, brighterscript_1.createStringLiteral(functionName));
|
|
98
101
|
editor.addToArray(callExpression.args, 0, arg0.callee.obj);
|
|
99
102
|
}
|
|
100
103
|
else if (brighterscript.isDottedGetExpression(arg0)) {
|
|
101
104
|
let functionName = arg0.name.text;
|
|
105
|
+
let fullPath = this.getStringPathFromDottedGet(arg0.obj);
|
|
102
106
|
arg0 = callExpression.args[0];
|
|
103
107
|
editor.removeFromArray(callExpression.args, 0);
|
|
104
108
|
if (!isNotCalled && !isStubCall) {
|
|
105
109
|
editor.addToArray(callExpression.args, 0, brighterscript_1.createInvalidLiteral());
|
|
106
110
|
}
|
|
111
|
+
editor.addToArray(callExpression.args, 0, fullPath !== null && fullPath !== void 0 ? fullPath : brighterscript_1.createInvalidLiteral());
|
|
112
|
+
editor.addToArray(callExpression.args, 0, this.getRootObjectFromDottedGet(arg0));
|
|
107
113
|
editor.addToArray(callExpression.args, 0, brighterscript_1.createStringLiteral(functionName));
|
|
108
114
|
editor.addToArray(callExpression.args, 0, arg0.obj);
|
|
109
115
|
}
|
|
@@ -119,6 +125,9 @@ class TestGroup extends TestSuite_1.TestBlock {
|
|
|
119
125
|
const expectedArgs = new brighterscript_1.ArrayLiteralExpression([brighterscript_1.createStringLiteral(functionName), ...arg0.args], brighterscript_1.createToken(brighterscript_1.TokenKind.LeftSquareBracket), brighterscript_1.createToken(brighterscript_1.TokenKind.RightSquareBracket));
|
|
120
126
|
editor.addToArray(callExpression.args, 0, expectedArgs);
|
|
121
127
|
}
|
|
128
|
+
let fullPath = this.getStringPathFromDottedGet(arg0.callee);
|
|
129
|
+
editor.addToArray(callExpression.args, 0, fullPath !== null && fullPath !== void 0 ? fullPath : brighterscript_1.createInvalidLiteral());
|
|
130
|
+
editor.addToArray(callExpression.args, 0, this.getRootObjectFromDottedGet(arg0.callee));
|
|
122
131
|
editor.addToArray(callExpression.args, 0, brighterscript_1.createStringLiteral('callFunc'));
|
|
123
132
|
editor.addToArray(callExpression.args, 0, arg0.callee);
|
|
124
133
|
}
|
|
@@ -139,6 +148,55 @@ class TestGroup extends TestSuite_1.TestBlock {
|
|
|
139
148
|
testCases: [${testCaseText.join(',\n')}]
|
|
140
149
|
}`;
|
|
141
150
|
}
|
|
151
|
+
getStringPathFromDottedGet(value) {
|
|
152
|
+
let parts = [this.getPathValuePartAsString(value)];
|
|
153
|
+
let root;
|
|
154
|
+
root = value.obj;
|
|
155
|
+
while (root) {
|
|
156
|
+
if (brighterscript_1.isCallExpression(root) || brighterscript_1.isCallfuncExpression(root)) {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
parts.push(`${this.getPathValuePartAsString(root)}`);
|
|
160
|
+
root = root.obj;
|
|
161
|
+
}
|
|
162
|
+
let joinedParts = parts.reverse().join('.');
|
|
163
|
+
return joinedParts === '' ? undefined : brighterscript_1.createStringLiteral(joinedParts);
|
|
164
|
+
}
|
|
165
|
+
getPathValuePartAsString(expr) {
|
|
166
|
+
if (brighterscript_1.isCallExpression(expr) || brighterscript_1.isCallfuncExpression(expr)) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
if (brighterscript_1.isVariableExpression(expr)) {
|
|
170
|
+
return expr.name.text;
|
|
171
|
+
}
|
|
172
|
+
if (!expr) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
if (brighterscript_1.isDottedGetExpression(expr)) {
|
|
176
|
+
return expr.name.text;
|
|
177
|
+
}
|
|
178
|
+
else if (brighterscript_1.isIndexedGetExpression(expr)) {
|
|
179
|
+
if (brighterscript_1.isLiteralExpression(expr.index)) {
|
|
180
|
+
return `${expr.index.token.text.replace(/^"/, '').replace(/"$/, '')}`;
|
|
181
|
+
}
|
|
182
|
+
else if (brighterscript_1.isVariableExpression(expr.index)) {
|
|
183
|
+
return `${expr.index.name.text}`;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
getRootObjectFromDottedGet(value) {
|
|
188
|
+
let root;
|
|
189
|
+
if (brighterscript_1.isDottedGetExpression(value) || brighterscript_1.isIndexedGetExpression(value)) {
|
|
190
|
+
root = value.obj;
|
|
191
|
+
while (root.obj) {
|
|
192
|
+
root = root.obj;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
root = value;
|
|
197
|
+
}
|
|
198
|
+
return root;
|
|
199
|
+
}
|
|
142
200
|
}
|
|
143
201
|
exports.TestGroup = TestGroup;
|
|
144
202
|
//# sourceMappingURL=TestGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestGroup.js","sourceRoot":"","sources":["../../../src/lib/rooibos/TestGroup.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"TestGroup.js","sourceRoot":"","sources":["../../../src/lib/rooibos/TestGroup.ts"],"names":[],"mappings":";;;AACA,mDAA6P;AAC7P,iDAAiD;AACjD,oFAAiF;AAEjF,sDAAqE;AAKrE,2CAAwC;AACxC,mCAAqE;AACrE,mCAA4B;AAE5B,MAAa,SAAU,SAAQ,qBAAS;IAEpC,YAAY,SAAoB,EAAE,UAA6B;QAC3D,KAAK,CAAC,UAAU,CAAC,CAAC;QASf,cAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxC,qBAAgB,GAAe,EAAE,CAAC;QAClC,kBAAa,GAAe,EAAE,CAAC;QAVlC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACpF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC7F,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QACnG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;IACpG,CAAC;IAOM,WAAW,CAAC,QAAkB;QAEjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE/G,IAAI,QAAQ,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B;aAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrC;IACL,CAAC;IAEM,YAAY;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,gBAAgB,CAAC,QAAkB,EAAE,WAAoB,EAAE,MAAiB;QAC/E,iBAAiB;QACjB,cAAc;QACd,0BAA0B;QAC1B,+BAA+B;QAC/B,MAAM,cAAc,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI;YACA,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5H,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;gBACnC,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,EAAE;oBACzC,IAAI,cAAc,GAAG,mBAAmB,CAAC,UAA4B,CAAC;oBACtE,IAAI,cAAc,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;wBAChH,IAAI,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC;wBAChC,IAAI,WAAW,GAAG,4DAA4D,CAAC;wBAC/E,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BACxC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gCAC9B,IAAI,CAAC,uCAAuC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gCACrE,OAAO,mBAAmB,CAAC;6BAE9B;iCAAM;gCAEH,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;oCACzE,IAAI,CAAC,uCAAuC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;iCACxE;gCACD,qGAAqG;gCACrG,4BAAoB,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,GAAG,gBAAM,CAAA;kEAC7B,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;sCAC3D,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;sCACjD,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,+CAA+C;iCACvE,GAAG,IAAI,CAAC,CAAC;6BACb;yBACJ;qBACJ;gBACL,CAAC;aACJ,CAAC,EAAE;gBACA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,wBAAwB;aAC7D,CAAC,CAAC;SACN;QAAC,OAAO,CAAC,EAAE;YACR,kBAAkB;YAClB,2CAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;SACjE;IACL,CAAC;IAEO,uCAAuC,CAAC,cAA8B,EAAE,MAAiB;QAC7F,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,sCAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAC9C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;YACvE,WAAW,GAAG,QAAQ,KAAK,iBAAiB,CAAC;YAC7C,UAAU,GAAG,QAAQ,KAAK,UAAU,CAAC;SACxC;QACD,aAAa;QACb,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,sCAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC7E,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,GAA0B,CAAC,CAAC;YACvF,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;gBAC7B,MAAM,YAAY,GAAG,IAAI,uCAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,4BAAW,CAAC,0BAAS,CAAC,iBAAiB,CAAC,EAAE,4BAAW,CAAC,0BAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAChJ,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;aAC3D;YACD,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,qCAAoB,EAAE,CAAC,CAAC;YAC9E,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACxF,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,oCAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC9D;aAAM,IAAI,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAA0B,CAAC,CAAC;YAChF,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC;YACrD,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;gBAC7B,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,qCAAoB,EAAE,CAAC,CAAC;aACrE;YACD,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,qCAAoB,EAAE,CAAC,CAAC;YAC9E,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAA2B,CAAC,CAAC,CAAC;YACxG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,oCAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAG,IAA4B,CAAC,GAAG,CAAC,CAAC;SAChF;aAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;YAClD,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,WAAW,IAAI,UAAU,EAAE;gBAC3B,kFAAkF;gBAClF,6KAA6K;gBAC7K,2DAA2D;aAC9D;iBAAM;gBACH,MAAM,YAAY,GAAG,IAAI,uCAAsB,CAAC,CAAC,oCAAmB,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,4BAAW,CAAC,0BAAS,CAAC,iBAAiB,CAAC,EAAE,4BAAW,CAAC,0BAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACxL,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;aAC3D;YACD,IAAI,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAA6B,CAAC,CAAC;YACnF,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,qCAAoB,EAAE,CAAC,CAAC;YAC9E,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAA6B,CAAC,CAAC,CAAC;YAC/G,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,oCAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1D;IACL,CAAC;IAEM,MAAM;QACT,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAEvG,OAAO;;wBAES,4BAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;0BAC7B,IAAI,CAAC,MAAM;6BACR,IAAI,CAAC,SAAS;6BACd,IAAI,CAAC,OAAO;+BACV,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;sCACpC,IAAI,CAAC,iBAAiB,IAAI,EAAE;yCACzB,IAAI,CAAC,oBAAoB,IAAI,EAAE;2CAC7B,IAAI,CAAC,sBAAsB,IAAI,EAAE;0CAClC,IAAI,CAAC,qBAAqB,IAAI,EAAE;8BAC5C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;cACxC,CAAC;IACX,CAAC;IAEO,0BAA0B,CAAC,KAA0B;QACzD,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC;QACT,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACjB,OAAO,IAAI,EAAE;YACT,IAAI,iCAAgB,CAAC,IAAI,CAAC,IAAI,qCAAoB,CAAC,IAAI,CAAC,EAAE;gBACtD,OAAO,SAAS,CAAC;aACpB;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;SACnB;QACD,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oCAAmB,CAAC,WAAW,CAAC,CAAC;IAC7E,CAAC;IAGO,wBAAwB,CAAC,IAAgB;QAC7C,IAAI,iCAAgB,CAAC,IAAI,CAAC,IAAI,qCAAoB,CAAC,IAAI,CAAC,EAAE;YACtD,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,qCAAoB,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,sCAAqB,CAAC,IAAI,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;aAAM,IAAI,uCAAsB,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,oCAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;aACzE;iBAAM,IAAI,qCAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACzC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACpC;SACJ;IACL,CAAC;IAEO,0BAA0B,CAAC,KAA0B;QACzD,IAAI,IAAI,CAAC;QACT,IAAI,sCAAqB,CAAC,KAAK,CAAC,IAAI,uCAAsB,CAAC,KAAK,CAAC,EAAE;YAE/D,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;YACjB,OAAO,IAAI,CAAC,GAAG,EAAE;gBACb,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;aACnB;SACJ;aAAM;YACH,IAAI,GAAG,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ;AAxMD,8BAwMC"}
|
|
@@ -16,10 +16,10 @@ function overrideAstTranspile(editor, node, value) {
|
|
|
16
16
|
exports.overrideAstTranspile = overrideAstTranspile;
|
|
17
17
|
function addOverriddenMethod(file, annotation, target, name, source, editor) {
|
|
18
18
|
var _a;
|
|
19
|
-
let functionSource = `
|
|
20
|
-
function ${name}()
|
|
21
|
-
${source}
|
|
22
|
-
end function
|
|
19
|
+
let functionSource = `
|
|
20
|
+
function ${name}()
|
|
21
|
+
${source}
|
|
22
|
+
end function
|
|
23
23
|
`;
|
|
24
24
|
let { statements, diagnostics } = brighterscript.Parser.parse(functionSource, { mode: brighterscript.ParseMode.BrighterScript });
|
|
25
25
|
let error = '';
|
package/dist/plugin.js
CHANGED
|
@@ -76,17 +76,23 @@ class RooibosPlugin {
|
|
|
76
76
|
beforeProgramTranspile(program, entries, editor) {
|
|
77
77
|
this.session.addTestRunnerMetadata(editor);
|
|
78
78
|
this.session.addLaunchHook(editor);
|
|
79
|
-
|
|
79
|
+
}
|
|
80
|
+
beforeFileTranspile(event) {
|
|
81
|
+
let testSuite = this.session.sessionInfo.testSuitesToRun.find((ts) => ts.file.pkgPath === event.file.pkgPath);
|
|
82
|
+
if (testSuite) {
|
|
80
83
|
let noEarlyExit = testSuite.annotation.noEarlyExit;
|
|
81
84
|
if (noEarlyExit) {
|
|
82
85
|
console.warn(`WARNING: testSuite "${testSuite.name}" is marked as noEarlyExit`);
|
|
83
86
|
}
|
|
84
|
-
testSuite.addDataFunctions(editor);
|
|
87
|
+
testSuite.addDataFunctions(event.editor);
|
|
85
88
|
for (let group of [...testSuite.testGroups.values()].filter((tg) => tg.isIncluded)) {
|
|
86
89
|
for (let testCase of [...group.testCases.values()].filter((tc) => tc.isIncluded)) {
|
|
87
|
-
group.modifyAssertions(testCase, noEarlyExit, editor);
|
|
90
|
+
group.modifyAssertions(testCase, noEarlyExit, event.editor);
|
|
88
91
|
}
|
|
89
92
|
}
|
|
93
|
+
if (testSuite.isNodeTest) {
|
|
94
|
+
this.session.createNodeFile(event.program, testSuite);
|
|
95
|
+
}
|
|
90
96
|
}
|
|
91
97
|
this.session.createNodeFiles(this._builder.program);
|
|
92
98
|
}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAUA,mDAEwB;AACxB,iEAA8D;AAC9D,+EAA4E;AAC5E,2DAAwD;AAExD,uCAAuC;AAEvC,MAAa,aAAa;IAA1B;QAEW,SAAI,GAAG,eAAe,CAAC;IAoIlC,CAAC;IA7HG,mBAAmB,CAAC,OAAuB;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,OAAe,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,qBAAqB,GAAG,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;SACnE;IACL,CAAC;IACO,SAAS,CAAC,OAAY;QAC1B,IAAI,MAAM,GAAkB,OAAO,CAAC;QACpC,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;SAChC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAClC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;QACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAClC;QACD,IAAI,MAAM,CAAC,uBAAuB,KAAK,SAAS,EAAE;YAC9C,MAAM,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACzC;QACD,gCAAgC;QAChC,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,cAAc,GAAG;gBACpB,cAAc;gBACd,2BAA2B;gBAC3B,uBAAuB;aAAC,CAAC;SAChC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,cAAc,CAAC,IAAa;QACxB,oCAAoC;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAAE;YAClE,2DAA2D;YAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO;SACV;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;YAChF,OAAO;SACV;QAED,4CAA4C;QAC5C,IAAI,0BAAS,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAChC,EAAE;aACL;iBAAM;gBACH,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aACpD;SACJ;IACL,CAAC;IAED,aAAa,KAAK,CAAC;IAEnB,sBAAsB,CAAC,OAAgB,EAAE,OAAuB,EAAE,MAAiB;QAC/E,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,KAA+B;QAC/C,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9G,IAAI,SAAS,EAAE;YACX,IAAI,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;YACnD,IAAI,WAAW,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,SAAS,CAAC,IAAI,4BAA4B,CAAC,CAAC;aACnF;YAED,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAa,CAAC,CAAC;YAChD,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;gBAChF,KAAK,IAAI,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;oBAC9E,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,MAAa,CAAC,CAAC;iBACtE;aACJ;YACD,IAAI,SAAS,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;aACzD;SACJ;QAED,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,qBAAqB,CAAC,OAAgB,EAAE,OAAuB,EAAE,MAAiB;QAC9E,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAED,oBAAoB;QAChB,sBAAsB;QACtB,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAClC,KAAK,IAAI,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;YACrE,SAAS,CAAC,QAAQ,EAAE,CAAC;SACxB;QACD,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;YACnD,2DAA2D;YAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,0BAA0B,CAAC,IAAa;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACxE,OAAO,IAAI,CAAC;SACf;aAAM;YACH,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvC,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QACD,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAtID,sCAsIC;AAED,kBAAe,GAAG,EAAE;IAChB,OAAO,IAAI,aAAa,EAAE,CAAC;AAC/B,CAAC,CAAC"}
|