@@ -9,11 +9,34 @@ import { setupTest } from '../_setup/suite.ts';
9
9
import drizzle from '../../drizzle/index.ts' ;
10
10
import { pageServer , pageComp } from './fixtures.ts' ;
11
11
12
- const { test, variants, prepareServer } = setupTest ( { drizzle } ) ;
13
-
14
12
// only linux is supported for running docker containers in github runners
15
13
const noDocker = process . env . CI && process . platform !== 'linux' ;
16
14
15
+ const { test, flavors, prepareServer } = setupTest (
16
+ { drizzle } ,
17
+ {
18
+ kinds : [
19
+ {
20
+ type : 'better-sqlite3' ,
21
+ options : { drizzle : { database : 'sqlite' , sqlite : 'better-sqlite3' } }
22
+ } ,
23
+ {
24
+ type : 'libsql' ,
25
+ options : { drizzle : { database : 'sqlite' , sqlite : 'libsql' } }
26
+ } ,
27
+ {
28
+ type : 'mysql2' ,
29
+ options : { drizzle : { database : 'mysql' , mysql : 'mysql2' , docker : true } }
30
+ } ,
31
+ {
32
+ type : 'postgres.js' ,
33
+ options : { drizzle : { database : 'postgresql' , postgresql : 'postgres.js' , docker : true } }
34
+ }
35
+ ] ,
36
+ filter : ( flavor ) => flavor . variant . includes ( 'kit' )
37
+ }
38
+ ) ;
39
+
17
40
beforeAll ( ( ) => {
18
41
if ( noDocker ) return ;
19
42
const cwd = path . dirname ( fileURLToPath ( import . meta. url ) ) ;
@@ -29,41 +52,27 @@ beforeAll(() => {
29
52
} ;
30
53
} ) ;
31
54
32
- const kitOnly = variants . filter ( ( v ) => v . includes ( 'kit' ) ) ;
33
- const testCases = [
34
- { name : 'better-sqlite3' , options : { database : 'sqlite' , sqlite : 'better-sqlite3' } } ,
35
- { name : 'libsql' , options : { database : 'sqlite' , sqlite : 'libsql' } } ,
36
- { name : 'mysql2' , options : { database : 'mysql' , mysql : 'mysql2' , docker : true } } ,
37
- {
38
- name : 'postgres.js' ,
39
- options : { database : 'postgresql' , postgresql : 'postgres.js' , docker : true }
40
- }
41
- ] . flatMap ( ( opts ) => kitOnly . map ( ( variant ) => ( { ...opts , variant } ) ) ) ;
42
-
43
- test . concurrent . for ( testCases ) (
44
- 'queries database - $name - $variant' ,
45
- async ( { options, variant } , { page, ...ctx } ) => {
46
- if ( options . docker && noDocker ) ctx . skip ( ) ;
47
- const cwd = await ctx . run ( variant , { drizzle : options as any } ) ;
55
+ test . concurrent . for ( flavors ) ( 'drizzle $kind.type $variant' , async ( flavor , { page, ...ctx } ) => {
56
+ if ( flavor . kind . options . drizzle . docker && noDocker ) ctx . skip ( ) ;
57
+ const cwd = ctx . run ( flavor ) ;
48
58
49
- const ts = variant === 'kit-ts' ;
50
- const drizzleConfig = path . resolve ( cwd , `drizzle.config.${ ts ? 'ts' : 'js' } ` ) ;
51
- const content = fs . readFileSync ( drizzleConfig , 'utf8' ) . replace ( / s t r i c t : t r u e [ , \s ] / , '' ) ;
52
- fs . writeFileSync ( drizzleConfig , content , 'utf8' ) ;
59
+ const ts = flavor . variant === 'kit-ts' ;
60
+ const drizzleConfig = path . resolve ( cwd , `drizzle.config.${ ts ? 'ts' : 'js' } ` ) ;
61
+ const content = fs . readFileSync ( drizzleConfig , 'utf8' ) . replace ( / s t r i c t : t r u e [ , \s ] / , '' ) ;
62
+ fs . writeFileSync ( drizzleConfig , content , 'utf8' ) ;
53
63
54
- const routes = path . resolve ( cwd , 'src' , 'routes' ) ;
55
- const pagePath = path . resolve ( routes , '+page.svelte' ) ;
56
- fs . writeFileSync ( pagePath , pageComp , 'utf8' ) ;
64
+ const routes = path . resolve ( cwd , 'src' , 'routes' ) ;
65
+ const pagePath = path . resolve ( routes , '+page.svelte' ) ;
66
+ fs . writeFileSync ( pagePath , pageComp , 'utf8' ) ;
57
67
58
- const pageServerPath = path . resolve ( routes , `+page.server.${ ts ? 'ts' : 'js' } ` ) ;
59
- fs . writeFileSync ( pageServerPath , pageServer , 'utf8' ) ;
68
+ const pageServerPath = path . resolve ( routes , `+page.server.${ ts ? 'ts' : 'js' } ` ) ;
69
+ fs . writeFileSync ( pageServerPath , pageServer , 'utf8' ) ;
60
70
61
- const { close } = await prepareServer ( { cwd, page } , ( ) => {
62
- execSync ( 'npm run db:push' , { cwd, stdio : 'pipe' } ) ;
63
- } ) ;
64
- // kill server process when we're done
65
- ctx . onTestFinished ( async ( ) => await close ( ) ) ;
71
+ const { close } = await prepareServer ( { cwd, page } , ( ) => {
72
+ execSync ( 'npm run db:push' , { cwd, stdio : 'pipe' } ) ;
73
+ } ) ;
74
+ // kill server process when we're done
75
+ ctx . onTestFinished ( async ( ) => await close ( ) ) ;
66
76
67
- expect ( page . locator ( '[data-testid]' ) ) . toBeTruthy ( ) ;
68
- }
69
- ) ;
77
+ expect ( page . locator ( '[data-testid]' ) ) . toBeTruthy ( ) ;
78
+ } ) ;
0 commit comments