diff --git a/__tests__/__snapshots__/light-async.js.snap b/__tests__/__snapshots__/light-async.js.snap index f32bd651c..051401016 100644 --- a/__tests__/__snapshots__/light-async.js.snap +++ b/__tests__/__snapshots__/light-async.js.snap @@ -1,6 +1,679 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`SyntaxHighlighter renders jsx highlighted text 1`] = ` +exports[`SyntaxHighlighter async load language if not registered 1`] = ` +
+
+ print(
+
+ 'hello'
+
+ )
+
+
+`;
+
+exports[`SyntaxHighlighter renders fortran highlighted text 1`] = `
+
+
+
+ C AREA OF A TRIANGLE WITH A STANDARD SQUARE ROOT
+
+
+ FUNCTION
+
+
+
+ C INPUT - TAPE READER
+
+ UNIT
+
+
+
+ 5
+
+ ,
+
+ INTEGER
+
+ INPUT
+ C OUTPUT - LINE PRINTER
+
+ UNIT
+
+
+
+ 6
+
+ ,
+
+ REAL
+
+ OUTPUT
+ C INPUT ERROR DISPLAY ERROR OUTPUT CODE
+
+ 1
+
+
+
+ IN
+
+ JOB CONTROL LISTING
+ READ INPUT TAPE
+
+ 5
+
+ ,
+
+ 501
+
+ , IA, IB, IC
+
+
+ 501
+
+
+
+ FORMAT
+
+ (I5)
+ C IA, IB, AND IC MAY NOT BE NEGATIVE OR ZERO
+ C FURTHERMORE, THE
+
+ SUM
+
+ OF TWO SIDES OF A TRIANGLE
+ C MUST BE GREATER THAN THE THIRD SIDE, SO WE CHECK FOR THAT, TOO
+
+
+ IF
+
+ (IA)
+
+ 777
+
+ ,
+
+ 777
+
+ ,
+
+ 701
+
+
+
+
+ 701
+
+
+
+ IF
+
+ (IB)
+
+ 777
+
+ ,
+
+ 777
+
+ ,
+
+ 702
+
+
+
+
+ 702
+
+
+
+ IF
+
+ (IC)
+
+ 777
+
+ ,
+
+ 777
+
+ ,
+
+ 703
+
+
+
+
+ 703
+
+
+
+ IF
+
+ (IA+IB-IC)
+
+ 777
+
+ ,
+
+ 777
+
+ ,
+
+ 704
+
+
+
+
+ 704
+
+
+
+ IF
+
+ (IA+IC-IB)
+
+ 777
+
+ ,
+
+ 777
+
+ ,
+
+ 705
+
+
+
+
+ 705
+
+
+
+ IF
+
+ (IB+IC-IA)
+
+ 777
+
+ ,
+
+ 777
+
+ ,
+
+ 799
+
+
+
+
+ 777
+
+
+
+ STOP
+
+
+
+ 1
+
+
+ C USING HERON
+
+ 'S FORMULA WE CALCULATE THE
+ C AREA OF THE TRIANGLE
+ 799 S = FLOATF (IA + IB + IC) / 2.0
+ AREA = SQRTF( S * (S - FLOATF(IA)) * (S - FLOATF(IB)) *
+ + (S - FLOATF(IC)))
+ WRITE OUTPUT TAPE 6, 601, IA, IB, IC, AREA
+ 601 FORMAT (4H A= ,I5,5H B= ,I5,5H C= ,I5,8H AREA= ,F10.2,
+ + 13H SQUARE UNITS)
+ STOP
+ END
+
+
+
+
+`;
+
+exports[`SyntaxHighlighter renders javascript highlighted text 1`] = `
`;
-exports[`SyntaxHighlighter should just render text if syntax is not registered 1`] = `
+exports[`SyntaxHighlighter renders text while language loads 1`] = `
- print(
-
- 'hello'
-
- )
+
+ C AREA OF A TRIANGLE WITH A STANDARD SQUARE ROOT FUNCTION
+ C INPUT - TAPE READER UNIT 5, INTEGER INPUT
+ C OUTPUT - LINE PRINTER UNIT 6, REAL OUTPUT
+ C INPUT ERROR DISPLAY ERROR OUTPUT CODE 1 IN JOB CONTROL LISTING
+ READ INPUT TAPE 5, 501, IA, IB, IC
+ 501 FORMAT (3I5)
+ C IA, IB, AND IC MAY NOT BE NEGATIVE OR ZERO
+ C FURTHERMORE, THE SUM OF TWO SIDES OF A TRIANGLE
+ C MUST BE GREATER THAN THE THIRD SIDE, SO WE CHECK FOR THAT, TOO
+ IF (IA) 777, 777, 701
+ 701 IF (IB) 777, 777, 702
+ 702 IF (IC) 777, 777, 703
+ 703 IF (IA+IB-IC) 777, 777, 704
+ 704 IF (IA+IC-IB) 777, 777, 705
+ 705 IF (IB+IC-IA) 777, 777, 799
+ 777 STOP 1
+ C USING HERON'S FORMULA WE CALCULATE THE
+ C AREA OF THE TRIANGLE
+ 799 S = FLOATF (IA + IB + IC) / 2.0
+ AREA = SQRTF( S * (S - FLOATF(IA)) * (S - FLOATF(IB)) *
+ + (S - FLOATF(IC)))
+ WRITE OUTPUT TAPE 6, 601, IA, IB, IC, AREA
+ 601 FORMAT (4H A= ,I5,5H B= ,I5,5H C= ,I5,8H AREA= ,F10.2,
+ + 13H SQUARE UNITS)
+ STOP
+ END
+
`;
diff --git a/__tests__/__snapshots__/prism-async-light.js.snap b/__tests__/__snapshots__/prism-async-light.js.snap
index 8ca91cb93..220efe02a 100644
--- a/__tests__/__snapshots__/prism-async-light.js.snap
+++ b/__tests__/__snapshots__/prism-async-light.js.snap
@@ -123,67 +123,12 @@ exports[`SyntaxHighlighter should just render text if syntax is not registered 1
}
}
>
-
- print
-
-
- (
-
-
- 'hello'
-
-
- )
-
+ print('hello')
`;
-exports[`When the code split is loaded - SyntaxHighlighter renders jsx highlighted text 1`] = `
+exports[`When the code split is loaded - SyntaxHighlighter renders python highlighted text after async loading python 1`] = `
+ + - import + # Import the modules - React + + - from + import - + sys + - "react" + import + random + +ans - ; + = - - + - import + True - uniquePropHOC + + + - from - - - - "./lib/unique-prop-hoc" + while + ans - ; + : - - + question - class + = - Expire + raw_input - - extends + ( - - React - - . - - Component + "Ask the magic 8 ball a question: (press enter to quit) " - - { + ) - + + answers - constructor + = + random - ( + . - props + randint - ) + ( - - { + 1 - - - super + , - ( + 8 - props ) + + + - ; + if - - + question - this + == + - . + "" - state - = + : - + + sys - { + . - component + exit - : + ( - props - . + ) - children + + + - } + elif - - + answers - } + == - - + - componentDidMount + 1 - ( + : + + - ) + print - { + "It is certain" - + + - setTimeout + elif + answers - ( + == + - ( + 2 - ) + : - + + - => + print - { + "Outlook good" - + + - this + elif + answers - . + == + - setState + 3 - ( + : + + - { + print - - component + - : + "You may rely on it" - + + + - null + elif - - + answers - } + == + - ) + 4 - ; + : - + - } + print + - , + "Ask again later" - + + + - this + elif + answers - . + == - props + - . + 5 - time - || + : - + + - this + print + - . + "Concentrate and ask again" - props + + + - . + elif - seconds + answers - * + == - 1000 + 6 - ) + : + + - ; + print - - + - } + "Reply hazy, try again" - + + - render + elif + answers - ( + == + - ) + 7 - - { + : - + - return + print - this + "My reply is no" + + + - . + elif - state + answers - . + == - component + - ; + 8 - - - } + : - + + print + + + + "My sources say no" + +`; diff --git a/__tests__/light-async.js b/__tests__/light-async.js index ea2574711..94467aea9 100644 --- a/__tests__/light-async.js +++ b/__tests__/light-async.js @@ -1,11 +1,16 @@ import React from 'react'; import renderer from 'react-test-renderer'; -import { LightAsync as SyntaxHighlighter } from "../src"; +import languageLoaders from '../src/async-languages/prism'; + +// Tree-shaking doesn't work in testing and loads all the languages +import SyntaxHighlighter from "../src/light-async"; import prism from "../src/styles/prism/prism"; -test('SyntaxHighlighter renders jsx highlighted text', () => { +test('SyntaxHighlighter renders javascript highlighted text', async () => { + await SyntaxHighlighter.preload(); + const tree = renderer.create( -