mirror of
https://github.com/zenstackhq/zenstack
synced 2026-05-24 10:08:55 +00:00
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import { createPolicyTestClient } from '@zenstackhq/testtools';
|
|
import { describe, expect, it } from 'vitest';
|
|
|
|
describe('Regression for issue #2385', () => {
|
|
it('should not generate "missing FROM-clause entry" when including a relation with a static-value @@allow policy', async () => {
|
|
const db = await createPolicyTestClient(
|
|
`
|
|
model User {
|
|
id String @id @default(uuid())
|
|
name String
|
|
associations Association[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@allow("read", auth().id == id)
|
|
}
|
|
|
|
model Association {
|
|
id String @id @default(uuid())
|
|
name String
|
|
userId String @db.VarChar @map("user_id")
|
|
user User @relation(fields: [userId], references: [id])
|
|
createdAt DateTime @default(now()) @allow("read", auth().id == userId)
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@allow("read", auth().id == userId)
|
|
}
|
|
`,
|
|
);
|
|
|
|
const rawDb = db.$unuseAll();
|
|
const user = await rawDb.user.create({
|
|
data: {
|
|
name: 'John Doe',
|
|
},
|
|
});
|
|
|
|
await rawDb.association.create({
|
|
data: {
|
|
name: 'Association for John',
|
|
userId: user.id,
|
|
},
|
|
});
|
|
|
|
const userDb = db.$setAuth(user);
|
|
|
|
await expect(
|
|
userDb.user.findMany({
|
|
include: { associations: true },
|
|
}),
|
|
).toResolveTruthy();
|
|
});
|
|
});
|