@@ -8,23 +8,44 @@ import {
88 StatusText ,
99} from "mocha-remote-react-native" ;
1010
11- import { examples as nodeAddonExamples } from "@react-native-node-api/node-addon-examples" ;
11+ import { suites as nodeAddonExamplesSuites } from "@react-native-node-api/node-addon-examples" ;
1212
13- function loadTests ( ) {
14- for ( const [ suiteName , examples ] of Object . entries ( nodeAddonExamples ) ) {
15- describe ( suiteName , ( ) => {
16- for ( const [ exampleName , requireExample ] of Object . entries ( examples ) ) {
17- it ( exampleName , ( ) => {
18- requireExample ( ) ;
19- } ) ;
20- }
21- } ) ;
22- }
13+ function describeIf (
14+ condition : boolean ,
15+ title : string ,
16+ fn : ( this : Mocha . Suite ) => void
17+ ) {
18+ return condition ? describe ( title , fn ) : describe . skip ( title , fn ) ;
19+ }
20+
21+ type Context = {
22+ allTests ?: boolean ;
23+ nodeAddonExamples ?: boolean ;
24+ ferricExample ?: boolean ;
25+ } ;
26+
27+ function loadTests ( {
28+ allTests = false ,
29+ nodeAddonExamples = allTests ,
30+ ferricExample = allTests ,
31+ } : Context ) {
32+ describeIf ( nodeAddonExamples , "Node Addon Examples" , ( ) => {
33+ for ( const [ suiteName , examples ] of Object . entries (
34+ nodeAddonExamplesSuites
35+ ) ) {
36+ describe ( suiteName , ( ) => {
37+ for ( const [ exampleName , requireExample ] of Object . entries ( examples ) ) {
38+ it ( exampleName , ( ) => {
39+ requireExample ( ) ;
40+ } ) ;
41+ }
42+ } ) ;
43+ }
44+ } ) ;
2345
24- describe ( "ferric-example" , ( ) => {
25- it ( "exports a callable sum function" , ( ) => {
26- // eslint-disable-next-line @typescript-eslint/no-require-imports
27- const exampleAddon = require ( "ferric-example" ) ;
46+ describeIf ( ferricExample , "ferric-example" , ( ) => {
47+ it ( "exports a callable sum function" , async ( ) => {
48+ const exampleAddon = await import ( "ferric-example" ) ;
2849 const result = exampleAddon . sum ( 1 , 3 ) ;
2950 if ( result !== 4 ) {
3051 throw new Error ( `Expected 1 + 3 to equal 4, but got ${ result } ` ) ;
0 commit comments