@@ -40,29 +40,6 @@ const COMPONENT_CODE_FRAME: CodeCodeFrame = {
4040 content : 'Component' ,
4141} ;
4242
43- // We can delete this when we delete legacy component stack types.
44- function getLogBoxLogLegacy ( ) {
45- return new ( require ( '../LogBoxLog' ) . default ) ( {
46- level : 'warn' ,
47- isComponentError : false ,
48- message : { content : '...' , substitutions : [ ] } ,
49- stack : createStack ( [ 'A' , 'B' , 'C' ] ) ,
50- category : 'Message category...' ,
51- componentStack : [
52- {
53- content : 'LogBoxLog' ,
54- fileName : 'LogBoxLog.js' ,
55- location : { column : - 1 , row : 1 } ,
56- } ,
57- ] ,
58- codeFrame : {
59- fileName : '/path/to/RKJSModules/Apps/CrashReact/CrashReactApp.js' ,
60- location : { row : 199 , column : 0 } ,
61- content : '<code frame>' ,
62- } ,
63- } ) ;
64- }
65-
6643function getLogBoxLog ( ) {
6744 return new ( require ( '../LogBoxLog' ) . default ) ( {
6845 level : 'warn' ,
@@ -148,243 +125,6 @@ describe('LogBoxLog', () => {
148125 ) ;
149126 } ) ;
150127
151- describe ( 'symbolicate legacy component stacks (no symbolication)' , ( ) => {
152- it ( 'creates a LogBoxLog object' , ( ) => {
153- const log = getLogBoxLogLegacy ( ) ;
154-
155- expect ( log . level ) . toEqual ( 'warn' ) ;
156- expect ( log . message ) . toEqual ( { content : '...' , substitutions : [ ] } ) ;
157- expect ( log . stack ) . toEqual ( createStack ( [ 'A' , 'B' , 'C' ] ) ) ;
158- expect ( log . category ) . toEqual ( 'Message category...' ) ;
159- expect ( log . componentStack ) . toEqual ( [
160- {
161- content : 'LogBoxLog' ,
162- fileName : 'LogBoxLog.js' ,
163- location : { column : - 1 , row : 1 } ,
164- } ,
165- ] ) ;
166- expect ( log . codeFrame ) . toEqual ( {
167- fileName : '/path/to/RKJSModules/Apps/CrashReact/CrashReactApp.js' ,
168- location : { row : 199 , column : 0 } ,
169- content : '<code frame>' ,
170- } ) ;
171- } ) ;
172-
173- it ( 'increments LogBoxLog count' , ( ) => {
174- const log = getLogBoxLogLegacy ( ) ;
175-
176- expect ( log . count ) . toEqual ( 1 ) ;
177-
178- log . incrementCount ( ) ;
179-
180- expect ( log . count ) . toEqual ( 2 ) ;
181- } ) ;
182-
183- it ( 'starts without a symbolicated stack' , ( ) => {
184- const log = getLogBoxLogLegacy ( ) ;
185-
186- expect ( log . symbolicated ) . toEqual ( {
187- error : null ,
188- stack : null ,
189- status : 'NONE' ,
190- } ) ;
191- } ) ;
192-
193- it ( 'updates when symbolication is in progress' , ( ) => {
194- const log = getLogBoxLogLegacy ( ) ;
195-
196- const callback = jest . fn ( ) ;
197- log . symbolicate ( callback ) ;
198-
199- expect ( callback ) . toBeCalledTimes ( 1 ) ;
200- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
201- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalledTimes ( 1 ) ;
202- expect ( log . symbolicated ) . toEqual ( {
203- error : null ,
204- stack : null ,
205- status : 'PENDING' ,
206- } ) ;
207-
208- // Symbolicating while pending should not make more requests.
209- callback . mockClear ( ) ;
210- getLogBoxSymbolication ( ) . symbolicate . mockClear ( ) ;
211-
212- log . symbolicate ( callback ) ;
213- expect ( callback ) . not . toBeCalled ( ) ;
214- expect ( getLogBoxSymbolication ( ) . symbolicate ) . not . toBeCalled ( ) ;
215- } ) ;
216-
217- it ( 'updates when symbolication finishes' , async ( ) => {
218- const log = getLogBoxLogLegacy ( ) ;
219-
220- const callback = jest . fn ( ) ;
221- log . symbolicate ( callback ) ;
222- expect ( callback ) . toBeCalledTimes ( 1 ) ;
223- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
224- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalled ( ) ;
225-
226- await runMicrotasks ( ) ;
227-
228- expect ( callback ) . toBeCalledTimes ( 2 ) ;
229- expect ( callback ) . toBeCalledWith ( 'COMPLETE' ) ;
230- expect ( log . symbolicated ) . toEqual ( {
231- error : null ,
232- stack : createStack ( [ 'S(A)' , 'S(B)' , 'S(C)' ] ) ,
233- status : 'COMPLETE' ,
234- } ) ;
235-
236- // Do not symbolicate again.
237- callback . mockClear ( ) ;
238- getLogBoxSymbolication ( ) . symbolicate . mockClear ( ) ;
239-
240- log . symbolicate ( callback ) ;
241-
242- await runMicrotasks ( ) ;
243-
244- expect ( callback ) . toBeCalledTimes ( 0 ) ;
245- expect ( getLogBoxSymbolication ( ) . symbolicate ) . not . toBeCalled ( ) ;
246- } ) ;
247-
248- it ( 'updates when symbolication fails' , async ( ) => {
249- const error = new Error ( '...' ) ;
250- getLogBoxSymbolication ( ) . symbolicate . mockImplementation ( async stack => {
251- throw error ;
252- } ) ;
253-
254- const log = getLogBoxLogLegacy ( ) ;
255-
256- const callback = jest . fn ( ) ;
257- log . symbolicate ( callback ) ;
258- expect ( callback ) . toBeCalledTimes ( 1 ) ;
259- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
260- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalled ( ) ;
261-
262- await runMicrotasks ( ) ;
263-
264- expect ( callback ) . toBeCalledTimes ( 2 ) ;
265- expect ( callback ) . toBeCalledWith ( 'FAILED' ) ;
266- expect ( log . symbolicated ) . toEqual ( {
267- error,
268- stack : null ,
269- status : 'FAILED' ,
270- } ) ;
271-
272- // Do not symbolicate again, retry if needed.
273- callback . mockClear ( ) ;
274- getLogBoxSymbolication ( ) . symbolicate . mockClear ( ) ;
275-
276- log . symbolicate ( callback ) ;
277-
278- await runMicrotasks ( ) ;
279-
280- expect ( callback ) . toBeCalledTimes ( 0 ) ;
281- expect ( getLogBoxSymbolication ( ) . symbolicate ) . not . toBeCalled ( ) ;
282- } ) ;
283-
284- it ( 'retry updates when symbolication is in progress' , ( ) => {
285- const log = getLogBoxLogLegacy ( ) ;
286-
287- const callback = jest . fn ( ) ;
288- log . retrySymbolicate ( callback ) ;
289-
290- expect ( callback ) . toBeCalledTimes ( 1 ) ;
291- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
292- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalledTimes ( 1 ) ;
293- expect ( log . symbolicated ) . toEqual ( {
294- error : null ,
295- stack : null ,
296- status : 'PENDING' ,
297- } ) ;
298-
299- // Symbolicating while pending should not make more requests.
300- callback . mockClear ( ) ;
301- getLogBoxSymbolication ( ) . symbolicate . mockClear ( ) ;
302-
303- log . symbolicate ( callback ) ;
304- expect ( callback ) . not . toBeCalled ( ) ;
305- expect ( getLogBoxSymbolication ( ) . symbolicate ) . not . toBeCalled ( ) ;
306- } ) ;
307-
308- it ( 'retry updates when symbolication finishes' , async ( ) => {
309- const log = getLogBoxLogLegacy ( ) ;
310-
311- const callback = jest . fn ( ) ;
312- log . retrySymbolicate ( callback ) ;
313- expect ( callback ) . toBeCalledTimes ( 1 ) ;
314- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
315- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalled ( ) ;
316-
317- await runMicrotasks ( ) ;
318-
319- expect ( callback ) . toBeCalledTimes ( 2 ) ;
320- expect ( callback ) . toBeCalledWith ( 'COMPLETE' ) ;
321- expect ( log . symbolicated ) . toEqual ( {
322- error : null ,
323- stack : createStack ( [ 'S(A)' , 'S(B)' , 'S(C)' ] ) ,
324- status : 'COMPLETE' ,
325- } ) ;
326-
327- // Do not symbolicate again
328- callback . mockClear ( ) ;
329- getLogBoxSymbolication ( ) . symbolicate . mockClear ( ) ;
330-
331- log . retrySymbolicate ( callback ) ;
332- jest . runAllTicks ( ) ;
333-
334- expect ( callback ) . toBeCalledTimes ( 0 ) ;
335- expect ( getLogBoxSymbolication ( ) . symbolicate ) . not . toBeCalled ( ) ;
336- } ) ;
337-
338- it ( 'retry updates when symbolication fails' , async ( ) => {
339- const error = new Error ( '...' ) ;
340- getLogBoxSymbolication ( ) . symbolicate . mockImplementation ( async stack => {
341- throw error ;
342- } ) ;
343-
344- const log = getLogBoxLogLegacy ( ) ;
345-
346- const callback = jest . fn ( ) ;
347- log . retrySymbolicate ( callback ) ;
348- expect ( callback ) . toBeCalledTimes ( 1 ) ;
349- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
350- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalled ( ) ;
351-
352- await runMicrotasks ( ) ;
353-
354- expect ( callback ) . toBeCalledTimes ( 2 ) ;
355- expect ( callback ) . toBeCalledWith ( 'FAILED' ) ;
356- expect ( log . symbolicated ) . toEqual ( {
357- error,
358- stack : null ,
359- status : 'FAILED' ,
360- } ) ;
361-
362- // Retry to symbolicate again.
363- callback . mockClear ( ) ;
364- getLogBoxSymbolication ( ) . symbolicate . mockClear ( ) ;
365- getLogBoxSymbolication ( ) . symbolicate . mockImplementation ( async stack => ( {
366- stack : createStack ( stack . map ( frame => `S(${ frame . methodName } )` ) ) ,
367- codeFrame : null ,
368- } ) ) ;
369-
370- log . retrySymbolicate ( callback ) ;
371-
372- expect ( callback ) . toBeCalledTimes ( 1 ) ;
373- expect ( callback ) . toBeCalledWith ( 'PENDING' ) ;
374- expect ( getLogBoxSymbolication ( ) . symbolicate ) . toBeCalled ( ) ;
375-
376- await runMicrotasks ( ) ;
377-
378- expect ( callback ) . toBeCalledTimes ( 2 ) ;
379- expect ( callback ) . toBeCalledWith ( 'COMPLETE' ) ;
380- expect ( log . symbolicated ) . toEqual ( {
381- error : null ,
382- stack : createStack ( [ 'S(A)' , 'S(B)' , 'S(C)' ] ) ,
383- status : 'COMPLETE' ,
384- } ) ;
385- } ) ;
386- } ) ;
387-
388128 describe ( 'symbolicate component stacks' , ( ) => {
389129 it ( 'creates a LogBoxLog object' , ( ) => {
390130 const log = getLogBoxLog ( ) ;
0 commit comments