1- import { loadSchema } from '@zenstackhq/testtools' ;
1+ import { SchemaLoadOptions , loadSchema } from '@zenstackhq/testtools' ;
22
33describe ( 'Permission checker' , ( ) => {
4- it ( 'empty rules' , async ( ) => {
4+ const PRELUDE = `
5+ datasource db {
6+ provider = 'sqlite'
7+ url = 'file:./dev.db'
8+ }
9+
10+ generator js {
11+ provider = 'prisma-client-js'
12+ }
13+
14+ plugin enhancer {
15+ provider = '@core/enhancer'
16+ generatePermissionChecker = true
17+ }
18+ ` ;
19+
20+ const load = ( schema : string , options ?: SchemaLoadOptions ) =>
21+ loadSchema ( `${ PRELUDE } \n${ schema } ` , {
22+ ...options ,
23+ addPrelude : false ,
24+ } ) ;
25+
26+ it ( 'checker generation not enabled' , async ( ) => {
527 const { enhance } = await loadSchema (
28+ `
29+ model Model {
30+ id Int @id @default(autoincrement())
31+ value Int
32+ @@allow('all', true)
33+ }
34+ `
35+ ) ;
36+ const db = enhance ( ) ;
37+ await expect ( db . model . check ( 'read' ) ) . toResolveFalsy ( ) ;
38+ } ) ;
39+
40+ it ( 'empty rules' , async ( ) => {
41+ const { enhance } = await load (
642 `
743 model Model {
844 id Int @id @default(autoincrement())
@@ -16,7 +52,7 @@ describe('Permission checker', () => {
1652 } ) ;
1753
1854 it ( 'unconditional allow' , async ( ) => {
19- const { enhance } = await loadSchema (
55+ const { enhance } = await load (
2056 `
2157 model Model {
2258 id Int @id @default(autoincrement())
@@ -31,7 +67,7 @@ describe('Permission checker', () => {
3167 } ) ;
3268
3369 it ( 'deny rule' , async ( ) => {
34- const { enhance } = await loadSchema (
70+ const { enhance } = await load (
3571 `
3672 model Model {
3773 id Int @id @default(autoincrement())
@@ -49,7 +85,7 @@ describe('Permission checker', () => {
4985 } ) ;
5086
5187 it ( 'int field condition' , async ( ) => {
52- const { enhance } = await loadSchema (
88+ const { enhance } = await load (
5389 `
5490 model Model {
5591 id Int @id @default(autoincrement())
@@ -82,7 +118,7 @@ describe('Permission checker', () => {
82118 } ) ;
83119
84120 it ( 'boolean field toplevel condition' , async ( ) => {
85- const { enhance } = await loadSchema (
121+ const { enhance } = await load (
86122 `
87123 model Model {
88124 id Int @id @default(autoincrement())
@@ -99,7 +135,7 @@ describe('Permission checker', () => {
99135 } ) ;
100136
101137 it ( 'boolean field condition' , async ( ) => {
102- const { enhance } = await loadSchema (
138+ const { enhance } = await load (
103139 `
104140 model Model {
105141 id Int @id @default(autoincrement())
@@ -131,7 +167,7 @@ describe('Permission checker', () => {
131167 } ) ;
132168
133169 it ( 'string field condition' , async ( ) => {
134- const { enhance } = await loadSchema (
170+ const { enhance } = await load (
135171 `
136172 model Model {
137173 id Int @id @default(autoincrement())
@@ -148,7 +184,7 @@ describe('Permission checker', () => {
148184 } ) ;
149185
150186 it ( 'function noop' , async ( ) => {
151- const { enhance } = await loadSchema (
187+ const { enhance } = await load (
152188 `
153189 model Model {
154190 id Int @id @default(autoincrement())
@@ -169,7 +205,7 @@ describe('Permission checker', () => {
169205 } ) ;
170206
171207 it ( 'relation noop' , async ( ) => {
172- const { enhance } = await loadSchema (
208+ const { enhance } = await load (
173209 `
174210 model Model {
175211 id Int @id @default(autoincrement())
@@ -194,7 +230,7 @@ describe('Permission checker', () => {
194230 } ) ;
195231
196232 it ( 'collection predicate noop' , async ( ) => {
197- const { enhance } = await loadSchema (
233+ const { enhance } = await load (
198234 `
199235 model Model {
200236 id Int @id @default(autoincrement())
@@ -219,7 +255,7 @@ describe('Permission checker', () => {
219255 } ) ;
220256
221257 it ( 'field complex condition' , async ( ) => {
222- const { enhance } = await loadSchema (
258+ const { enhance } = await load (
223259 `
224260 model Model {
225261 id Int @id @default(autoincrement())
@@ -252,7 +288,7 @@ describe('Permission checker', () => {
252288 } ) ;
253289
254290 it ( 'field condition unsolvable' , async ( ) => {
255- const { enhance } = await loadSchema (
291+ const { enhance } = await load (
256292 `
257293 model Model {
258294 id Int @id @default(autoincrement())
@@ -272,7 +308,7 @@ describe('Permission checker', () => {
272308 } ) ;
273309
274310 it ( 'simple auth condition' , async ( ) => {
275- const { enhance } = await loadSchema (
311+ const { enhance } = await load (
276312 `
277313 model User {
278314 id Int @id @default(autoincrement())
@@ -307,7 +343,7 @@ describe('Permission checker', () => {
307343 } ) ;
308344
309345 it ( 'auth compared with relation field' , async ( ) => {
310- const { enhance } = await loadSchema (
346+ const { enhance } = await load (
311347 `
312348 model User {
313349 id Int @id @default(autoincrement())
@@ -349,7 +385,7 @@ describe('Permission checker', () => {
349385 } ) ;
350386
351387 it ( 'auth null check' , async ( ) => {
352- const { enhance } = await loadSchema (
388+ const { enhance } = await load (
353389 `
354390 model User {
355391 id Int @id @default(autoincrement())
@@ -379,7 +415,7 @@ describe('Permission checker', () => {
379415 } ) ;
380416
381417 it ( 'auth with relation access' , async ( ) => {
382- const { enhance } = await loadSchema (
418+ const { enhance } = await load (
383419 `
384420 model User {
385421 id Int @id @default(autoincrement())
@@ -408,7 +444,7 @@ describe('Permission checker', () => {
408444 } ) ;
409445
410446 it ( 'nullable field' , async ( ) => {
411- const { enhance } = await loadSchema (
447+ const { enhance } = await load (
412448 `
413449 model Model {
414450 id Int @id @default(autoincrement())
@@ -427,7 +463,7 @@ describe('Permission checker', () => {
427463 } ) ;
428464
429465 it ( 'compilation' , async ( ) => {
430- await loadSchema (
466+ await load (
431467 `
432468 model Model {
433469 id Int @id @default(autoincrement())
@@ -456,7 +492,7 @@ describe('Permission checker', () => {
456492 } ) ;
457493
458494 it ( 'invalid filter' , async ( ) => {
459- const { enhance } = await loadSchema (
495+ const { enhance } = await load (
460496 `
461497 model Model {
462498 id Int @id @default(autoincrement())
@@ -498,7 +534,7 @@ describe('Permission checker', () => {
498534 } ) ;
499535
500536 it ( 'float field ignored' , async ( ) => {
501- const { enhance } = await loadSchema (
537+ const { enhance } = await load (
502538 `
503539 model Model {
504540 id Int @id @default(autoincrement())
@@ -513,7 +549,7 @@ describe('Permission checker', () => {
513549 } ) ;
514550
515551 it ( 'float value ignored' , async ( ) => {
516- const { enhance } = await loadSchema (
552+ const { enhance } = await load (
517553 `
518554 model Model {
519555 id Int @id @default(autoincrement())
0 commit comments