@@ -4,7 +4,7 @@ import configureStore from "redux-mock-store";
44import PyodideRunner from "./PyodideRunner" ;
55import { Provider } from "react-redux" ;
66import PyodideWorker , { postMessage } from "./PyodideWorker.mock.js" ;
7- import { setError } from "../../../../redux/EditorSlice.js" ;
7+ import { setError } from "../../../../../ redux/EditorSlice.js" ;
88
99jest . mock ( "fs" ) ;
1010
@@ -25,19 +25,25 @@ const initialState = {
2525 auth : { } ,
2626} ;
2727
28- describe ( "When first loaded" , ( ) => {
28+ describe ( "When active and first loaded" , ( ) => {
2929 beforeEach ( ( ) => {
3030 const store = mockStore ( initialState ) ;
3131 render (
3232 < Provider store = { store } >
33- < PyodideRunner /> ,
33+ < PyodideRunner active = { true } /> ,
3434 </ Provider > ,
3535 ) ;
3636 } ) ;
3737
3838 test ( "it renders successfully" , ( ) => {
3939 expect ( screen . queryByText ( "output.textOutput" ) ) . toBeInTheDocument ( ) ;
4040 } ) ;
41+
42+ test ( "it has style display: flex" , ( ) => {
43+ expect ( document . querySelector ( ".pyodiderunner" ) ) . toHaveStyle (
44+ "display: flex" ,
45+ ) ;
46+ } ) ;
4147} ) ;
4248
4349describe ( "When a code run has been triggered" , ( ) => {
@@ -55,7 +61,7 @@ describe("When a code run has been triggered", () => {
5561 } ) ;
5662 render (
5763 < Provider store = { store } >
58- < PyodideRunner /> ,
64+ < PyodideRunner active = { true } /> ,
5965 </ Provider > ,
6066 ) ;
6167 } ) ;
@@ -94,7 +100,7 @@ describe("When the code has been stopped", () => {
94100 } ) ;
95101 render (
96102 < Provider store = { store } >
97- < PyodideRunner /> ,
103+ < PyodideRunner active = { true } /> ,
98104 </ Provider > ,
99105 ) ;
100106 } ) ;
@@ -112,7 +118,7 @@ describe("When loading pyodide", () => {
112118 store = mockStore ( initialState ) ;
113119 render (
114120 < Provider store = { store } >
115- < PyodideRunner /> ,
121+ < PyodideRunner active = { true } /> ,
116122 </ Provider > ,
117123 ) ;
118124
@@ -131,7 +137,7 @@ describe("When pyodide has loaded", () => {
131137 store = mockStore ( initialState ) ;
132138 render (
133139 < Provider store = { store } >
134- < PyodideRunner /> ,
140+ < PyodideRunner active = { true } /> ,
135141 </ Provider > ,
136142 ) ;
137143
@@ -151,7 +157,7 @@ describe("When input is required", () => {
151157 store = mockStore ( initialState ) ;
152158 render (
153159 < Provider store = { store } >
154- < PyodideRunner /> ,
160+ < PyodideRunner active = { true } /> ,
155161 </ Provider > ,
156162 ) ;
157163
@@ -192,7 +198,7 @@ describe("When output is received", () => {
192198 store = mockStore ( initialState ) ;
193199 render (
194200 < Provider store = { store } >
195- < PyodideRunner /> ,
201+ < PyodideRunner active = { true } /> ,
196202 </ Provider > ,
197203 ) ;
198204
@@ -215,7 +221,7 @@ describe("When visual output is received", () => {
215221 store = mockStore ( initialState ) ;
216222 render (
217223 < Provider store = { store } >
218- < PyodideRunner /> ,
224+ < PyodideRunner active = { true } /> ,
219225 </ Provider > ,
220226 ) ;
221227
@@ -247,7 +253,7 @@ describe("When an error is received", () => {
247253 store = mockStore ( initialState ) ;
248254 render (
249255 < Provider store = { store } >
250- < PyodideRunner /> ,
256+ < PyodideRunner active = { true } /> ,
251257 </ Provider > ,
252258 ) ;
253259
@@ -279,7 +285,7 @@ describe("When the code run is interrupted", () => {
279285 store = mockStore ( initialState ) ;
280286 render (
281287 < Provider store = { store } >
282- < PyodideRunner /> ,
288+ < PyodideRunner active = { true } /> ,
283289 </ Provider > ,
284290 ) ;
285291
@@ -302,3 +308,38 @@ describe("When the code run is interrupted", () => {
302308 ) ;
303309 } ) ;
304310} ) ;
311+
312+ describe ( "When not active and first loaded" , ( ) => {
313+ beforeEach ( ( ) => {
314+ const store = mockStore ( initialState ) ;
315+ render (
316+ < Provider store = { store } >
317+ < PyodideRunner active = { false } /> ,
318+ </ Provider > ,
319+ ) ;
320+ } ) ;
321+
322+ test ( "it renders with display: none" , ( ) => {
323+ expect ( document . querySelector ( ".pyodiderunner" ) ) . toHaveStyle (
324+ "display: none" ,
325+ ) ;
326+ } ) ;
327+ } ) ;
328+
329+ describe ( "When not active and code run triggered" , ( ) => {
330+ beforeEach ( ( ) => {
331+ const store = mockStore ( {
332+ ...initialState ,
333+ editor : { ...initialState . editor , codeRunTriggered : true } ,
334+ } ) ;
335+ render (
336+ < Provider store = { store } >
337+ < PyodideRunner active = { false } /> ,
338+ </ Provider > ,
339+ ) ;
340+ } ) ;
341+
342+ test ( "it does not send a message to the worker to run the python code" , ( ) => {
343+ expect ( postMessage ) . not . toHaveBeenCalled ( ) ;
344+ } ) ;
345+ } ) ;
0 commit comments