1
- import { expect , test } from 'vitest'
1
+ import { describe , expect , test } from 'vitest'
2
2
import type { ecmaVersion } from 'acorn'
3
3
import { parse } from 'acorn'
4
- import { detectModernBrowserDetector } from '../snippets'
4
+ import {
5
+ detectModernBrowserCode ,
6
+ detectModernBrowserDetector ,
7
+ dynamicFallbackInlineCode ,
8
+ safari10NoModuleFix ,
9
+ systemJSInlineCode ,
10
+ } from '../snippets'
5
11
6
12
const shouldFailVersions : ecmaVersion [ ] = [ ]
7
13
for ( let v = 2015 ; v <= 2019 ; v ++ ) {
8
14
shouldFailVersions . push ( v as ecmaVersion )
9
15
}
10
16
11
- const shouldPassVersions : acorn . ecmaVersion [ ] = [ ]
12
- for ( let v = 2020 ; v <= 2022 ; v ++ ) {
17
+ const shouldPassVersions : ecmaVersion [ ] = [ ]
18
+ for ( let v = 2020 ; v <= 2024 ; v ++ ) {
13
19
shouldPassVersions . push ( v as ecmaVersion )
14
20
}
15
21
@@ -34,3 +40,23 @@ for (const version of shouldPassVersions) {
34
40
} ) . not . toThrow ( )
35
41
} )
36
42
}
43
+
44
+ describe ( 'snippets are valid' , ( ) => {
45
+ const codes = {
46
+ safari10NoModuleFix,
47
+ systemJSInlineCode,
48
+ detectModernBrowserCode,
49
+ dynamicFallbackInlineCode,
50
+ }
51
+
52
+ for ( const [ name , value ] of Object . entries ( codes ) ) {
53
+ test ( `${ name } is valid JS` , ( ) => {
54
+ expect ( ( ) => {
55
+ parse ( value , {
56
+ ecmaVersion : 'latest' ,
57
+ sourceType : 'module' ,
58
+ } )
59
+ } ) . not . toThrow ( )
60
+ } )
61
+ }
62
+ } )
0 commit comments