@@ -70,6 +70,8 @@ async function runTests() {
7070 await testFilesTargetPath ( ) ;
7171
7272 await testDependsOn ( ) ;
73+ await testDependsOrder1 ( ) ;
74+ await testDependsOrder2 ( ) ;
7375
7476 t . summary ( ) ;
7577 return t . errorCount ;
@@ -1017,6 +1019,67 @@ async function testDependsOn() {
10171019 } ) ;
10181020}
10191021
1022+ async function testDependsOrder1 ( ) {
1023+ return new Promise ( ( resolve , reject ) => {
1024+ t . log ( "testDependsOrder1..." ) ;
1025+ const html = `
1026+ <pre><code>console.log("step-1")</code></pre>
1027+ <codapi-snippet id="step-1" engine="browser" sandbox="javascript">
1028+ </codapi-snippet>
1029+ <pre><code>console.log("step-2")</code></pre>
1030+ <codapi-snippet id="step-2" engine="browser" sandbox="javascript">
1031+ </codapi-snippet>
1032+ <pre><code>console.log("step-3")</code></pre>
1033+ <codapi-snippet id="step-3" engine="browser" sandbox="javascript" depends-on="step-1 step-2">
1034+ </codapi-snippet>
1035+ ` ;
1036+ const ui = createSnippet ( html ) ;
1037+ ui . snip . addEventListener ( "result" , ( event ) => {
1038+ const result = event . detail ;
1039+ t . assert ( "result.ok" , result . ok ) ;
1040+ t . assert ( "result.stdout" , result . stdout . trim ( ) == "step-1\nstep-2\nstep-3" ) ;
1041+ t . assert ( "result.stderr" , result . stderr == "" ) ;
1042+ t . assert ( "status done" , ui . status . innerHTML . includes ( "Done" ) ) ;
1043+ t . assert ( "output" , ui . output . out . innerText . trim ( ) == "step-1\nstep-2\nstep-3" ) ;
1044+ resolve ( ) ;
1045+ } ) ;
1046+ ui . toolbar . run . click ( ) ;
1047+ t . assert ( "status running" , ui . status . innerHTML . includes ( "Running" ) ) ;
1048+ } ) ;
1049+ }
1050+
1051+ async function testDependsOrder2 ( ) {
1052+ return new Promise ( ( resolve , reject ) => {
1053+ t . log ( "testDependsOrder2..." ) ;
1054+ const html = `
1055+ <pre><code>console.log("step-1")</code></pre>
1056+ <codapi-snippet id="step-1" engine="browser" sandbox="javascript">
1057+ </codapi-snippet>
1058+ <pre><code>console.log("step-2")</code></pre>
1059+ <codapi-snippet id="step-2" engine="browser" sandbox="javascript" depends-on="step-1">
1060+ </codapi-snippet>
1061+ <pre><code>console.log("step-3")</code></pre>
1062+ <codapi-snippet id="step-3" engine="browser" sandbox="javascript" depends-on="step-1">
1063+ </codapi-snippet>
1064+ <pre><code>console.log("step-4")</code></pre>
1065+ <codapi-snippet id="step-4" engine="browser" sandbox="javascript" depends-on="step-2 step-3">
1066+ </codapi-snippet>
1067+ ` ;
1068+ const ui = createSnippet ( html ) ;
1069+ ui . snip . addEventListener ( "result" , ( event ) => {
1070+ const result = event . detail ;
1071+ t . assert ( "result.ok" , result . ok ) ;
1072+ t . assert ( "result.stdout" , result . stdout . trim ( ) == "step-1\nstep-2\nstep-3\nstep-4" ) ;
1073+ t . assert ( "result.stderr" , result . stderr == "" ) ;
1074+ t . assert ( "status done" , ui . status . innerHTML . includes ( "Done" ) ) ;
1075+ t . assert ( "output" , ui . output . out . innerText . trim ( ) == "step-1\nstep-2\nstep-3\nstep-4" ) ;
1076+ resolve ( ) ;
1077+ } ) ;
1078+ ui . toolbar . run . click ( ) ;
1079+ t . assert ( "status running" , ui . status . innerHTML . includes ( "Running" ) ) ;
1080+ } ) ;
1081+ }
1082+
10201083function createSnippet ( html ) {
10211084 document . querySelector ( "#app" ) . innerHTML = html ;
10221085 const editor = document . querySelector ( "#app pre:last-of-type code" ) ;
0 commit comments