mirror of
https://github.com/zenstackhq/zenstack
synced 2026-05-24 10:08:55 +00:00
176 lines
4 KiB
TypeScript
176 lines
4 KiB
TypeScript
/// <reference types="@types/jest" />
|
|
|
|
import { loadSchema } from '@zenstackhq/testtools';
|
|
|
|
describe('Tanstack Query Plugin Tests', () => {
|
|
let origDir: string;
|
|
|
|
beforeAll(() => {
|
|
origDir = process.cwd();
|
|
});
|
|
|
|
afterEach(() => {
|
|
process.chdir(origDir);
|
|
});
|
|
|
|
const sharedModel = `
|
|
model User {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
email String @unique
|
|
role role @default(USER)
|
|
posts post_Item[]
|
|
}
|
|
|
|
enum role {
|
|
USER
|
|
ADMIN
|
|
}
|
|
|
|
model post_Item {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
title String
|
|
author User? @relation(fields: [authorId], references: [id])
|
|
authorId String?
|
|
published Boolean @default(false)
|
|
viewCount Int @default(0)
|
|
}
|
|
|
|
model Foo {
|
|
id String @id
|
|
@@ignore
|
|
}
|
|
`;
|
|
|
|
it('react-query run plugin v4', async () => {
|
|
await loadSchema(
|
|
`
|
|
plugin tanstack {
|
|
provider = '${process.cwd()}/dist'
|
|
output = '$projectRoot/hooks'
|
|
target = 'react'
|
|
}
|
|
|
|
${sharedModel}
|
|
`,
|
|
{
|
|
provider: 'postgresql',
|
|
pushDb: false,
|
|
extraDependencies: ['react@18.2.0', '@types/react@18.2.0', '@tanstack/react-query@4.29.7'],
|
|
copyDependencies: [`${origDir}/dist`],
|
|
compile: true,
|
|
}
|
|
);
|
|
});
|
|
|
|
it('react-query run plugin v5', async () => {
|
|
await loadSchema(
|
|
`
|
|
plugin tanstack {
|
|
provider = '${process.cwd()}/dist'
|
|
output = '$projectRoot/hooks'
|
|
target = 'react'
|
|
version = 'v5'
|
|
}
|
|
|
|
${sharedModel}
|
|
`,
|
|
{
|
|
provider: 'postgresql',
|
|
pushDb: false,
|
|
extraDependencies: ['react@18.2.0', '@types/react@18.2.0', '@tanstack/react-query@^5.0.0'],
|
|
copyDependencies: [`${origDir}/dist`],
|
|
compile: true,
|
|
}
|
|
);
|
|
});
|
|
|
|
it('vue-query run plugin v4', async () => {
|
|
await loadSchema(
|
|
`
|
|
plugin tanstack {
|
|
provider = '${process.cwd()}/dist'
|
|
output = '$projectRoot/hooks'
|
|
target = 'vue'
|
|
}
|
|
|
|
${sharedModel}
|
|
`,
|
|
{
|
|
provider: 'postgresql',
|
|
pushDb: false,
|
|
extraDependencies: ['vue@^3.3.4', '@tanstack/vue-query@4.37.0'],
|
|
copyDependencies: [`${origDir}/dist`],
|
|
compile: true,
|
|
}
|
|
);
|
|
});
|
|
|
|
it('vue-query run plugin v5', async () => {
|
|
await loadSchema(
|
|
`
|
|
plugin tanstack {
|
|
provider = '${process.cwd()}/dist'
|
|
output = '$projectRoot/hooks'
|
|
target = 'vue'
|
|
version = 'v5'
|
|
}
|
|
|
|
${sharedModel}
|
|
`,
|
|
{
|
|
provider: 'postgresql',
|
|
pushDb: false,
|
|
extraDependencies: ['vue@^3.3.4', '@tanstack/vue-query@latest'],
|
|
copyDependencies: [`${origDir}/dist`],
|
|
compile: true,
|
|
}
|
|
);
|
|
});
|
|
|
|
it('svelte-query run plugin v4', async () => {
|
|
await loadSchema(
|
|
`
|
|
plugin tanstack {
|
|
provider = '${process.cwd()}/dist'
|
|
output = '$projectRoot/hooks'
|
|
target = 'svelte'
|
|
}
|
|
|
|
${sharedModel}
|
|
`,
|
|
{
|
|
provider: 'postgresql',
|
|
pushDb: false,
|
|
extraDependencies: ['svelte@^3.0.0', '@tanstack/svelte-query@4.29.7'],
|
|
copyDependencies: [`${origDir}/dist`],
|
|
compile: true,
|
|
}
|
|
);
|
|
});
|
|
|
|
it('svelte-query run plugin v5', async () => {
|
|
await loadSchema(
|
|
`
|
|
plugin tanstack {
|
|
provider = '${process.cwd()}/dist'
|
|
output = '$projectRoot/hooks'
|
|
target = 'svelte'
|
|
version = 'v5'
|
|
}
|
|
|
|
${sharedModel}
|
|
`,
|
|
{
|
|
provider: 'postgresql',
|
|
pushDb: false,
|
|
extraDependencies: ['svelte@^3.0.0', '@tanstack/svelte-query@^5.0.0'],
|
|
copyDependencies: [`${origDir}/dist`],
|
|
compile: true,
|
|
}
|
|
);
|
|
});
|
|
});
|