Init DB and Tests with Components
- add Artikel, Kauf, Kategorie Model - generate Components - playing with custom components - add Tailwindcss
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "artikel" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"name" TEXT NOT NULL,
|
||||
"preis" REAL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "kauf" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"timestamp" INTEGER NOT NULL,
|
||||
"preis_ges" REAL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "kauf_artikel" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"kauf_id" INTEGER NOT NULL,
|
||||
"artikel_id" INTEGER NOT NULL,
|
||||
"anzahl" INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "artikel_name_key" ON "artikel"("name");
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `artikel` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `kauf` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `kauf_artikel` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropTable
|
||||
PRAGMA foreign_keys=off;
|
||||
DROP TABLE "artikel";
|
||||
PRAGMA foreign_keys=on;
|
||||
|
||||
-- DropTable
|
||||
PRAGMA foreign_keys=off;
|
||||
DROP TABLE "kauf";
|
||||
PRAGMA foreign_keys=on;
|
||||
|
||||
-- DropTable
|
||||
PRAGMA foreign_keys=off;
|
||||
DROP TABLE "kauf_artikel";
|
||||
PRAGMA foreign_keys=on;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Kauf_Artikel" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"kauf_id" INTEGER NOT NULL,
|
||||
"artikel_id" INTEGER NOT NULL,
|
||||
"anzahl" INTEGER NOT NULL,
|
||||
CONSTRAINT "Kauf_Artikel_kauf_id_fkey" FOREIGN KEY ("kauf_id") REFERENCES "Kauf" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
CONSTRAINT "Kauf_Artikel_artikel_id_fkey" FOREIGN KEY ("artikel_id") REFERENCES "Artikel" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Artikel" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"name" TEXT NOT NULL,
|
||||
"preis" REAL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Kauf" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"timestamp" INTEGER NOT NULL,
|
||||
"preis_ges" REAL
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Artikel_name_key" ON "Artikel"("name");
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `Kauf_Artikel` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropTable
|
||||
PRAGMA foreign_keys=off;
|
||||
DROP TABLE "Kauf_Artikel";
|
||||
PRAGMA foreign_keys=on;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "KaufArtikel" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"kauf_id" INTEGER NOT NULL,
|
||||
"artikel_id" INTEGER NOT NULL,
|
||||
"anzahl" INTEGER NOT NULL,
|
||||
CONSTRAINT "KaufArtikel_kauf_id_fkey" FOREIGN KEY ("kauf_id") REFERENCES "Kauf" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
CONSTRAINT "KaufArtikel_artikel_id_fkey" FOREIGN KEY ("artikel_id") REFERENCES "Artikel" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Kategorie" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"name" TEXT NOT NULL,
|
||||
"timestamp" INTEGER NOT NULL,
|
||||
"preis_ges" REAL
|
||||
);
|
||||
|
||||
-- RedefineTables
|
||||
PRAGMA foreign_keys=OFF;
|
||||
CREATE TABLE "new_Artikel" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"name" TEXT NOT NULL,
|
||||
"preis" REAL,
|
||||
"kategorie_id" INTEGER,
|
||||
CONSTRAINT "Artikel_kategorie_id_fkey" FOREIGN KEY ("kategorie_id") REFERENCES "Kategorie" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||
);
|
||||
INSERT INTO "new_Artikel" ("id", "name", "preis") SELECT "id", "name", "preis" FROM "Artikel";
|
||||
DROP TABLE "Artikel";
|
||||
ALTER TABLE "new_Artikel" RENAME TO "Artikel";
|
||||
CREATE UNIQUE INDEX "Artikel_name_key" ON "Artikel"("name");
|
||||
PRAGMA foreign_key_check;
|
||||
PRAGMA foreign_keys=ON;
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Kategorie_name_key" ON "Kategorie"("name");
|
||||
@@ -0,0 +1,3 @@
|
||||
# Please do not edit this file manually
|
||||
# It should be added in your version-control system (i.e. Git)
|
||||
provider = "sqlite"
|
||||
+30
-6
@@ -9,10 +9,34 @@ generator client {
|
||||
}
|
||||
|
||||
// Define your own datamodels here and run `yarn redwood prisma migrate dev`
|
||||
// to create migrations for them and apply to your dev DB.
|
||||
// TODO: Please remove the following example:
|
||||
model UserExample {
|
||||
id Int @id @default(autoincrement())
|
||||
email String @unique
|
||||
name String?
|
||||
|
||||
model KaufArtikel {
|
||||
id Int @id @default(autoincrement())
|
||||
kauf Kauf @relation(fields: [kauf_id], references: [id])
|
||||
kauf_id Int
|
||||
artikel Artikel @relation(fields: [artikel_id], references: [id])
|
||||
artikel_id Int
|
||||
anzahl Int
|
||||
}
|
||||
|
||||
model Artikel {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
preis Float?
|
||||
kategorie Kategorie? @relation(fields: [kategorie_id], references: [id])
|
||||
kategorie_id Int?
|
||||
kaeufe KaufArtikel[]
|
||||
}
|
||||
|
||||
model Kategorie {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
artikel Artikel[]
|
||||
}
|
||||
|
||||
model Kauf {
|
||||
id Int @id @default(autoincrement())
|
||||
timestamp DateTime @default(now())
|
||||
preis_ges Float?
|
||||
artikel KaufArtikel[]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
export const schema = gql`
|
||||
type Artikel {
|
||||
id: Int!
|
||||
name: String!
|
||||
preis: Float
|
||||
kategorie: Kategorie
|
||||
kategorie_id: Int
|
||||
kaeufe: [KaufArtikel]!
|
||||
}
|
||||
|
||||
type Query {
|
||||
artikels: [Artikel!]! @requireAuth
|
||||
artikel(id: Int!): Artikel @requireAuth
|
||||
}
|
||||
|
||||
input CreateArtikelInput {
|
||||
name: String!
|
||||
preis: Float
|
||||
kategorie_id: Int
|
||||
}
|
||||
|
||||
input UpdateArtikelInput {
|
||||
name: String
|
||||
preis: Float
|
||||
kategorie_id: Int
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
createArtikel(input: CreateArtikelInput!): Artikel! @requireAuth
|
||||
updateArtikel(id: Int!, input: UpdateArtikelInput!): Artikel! @requireAuth
|
||||
deleteArtikel(id: Int!): Artikel! @requireAuth
|
||||
}
|
||||
`
|
||||
@@ -0,0 +1,27 @@
|
||||
export const schema = gql`
|
||||
type Kategorie {
|
||||
id: Int!
|
||||
name: String!
|
||||
artikel: [Artikel]!
|
||||
}
|
||||
|
||||
type Query {
|
||||
kategories: [Kategorie!]! @requireAuth
|
||||
kategorie(id: Int!): Kategorie @requireAuth
|
||||
}
|
||||
|
||||
input CreateKategorieInput {
|
||||
name: String!
|
||||
}
|
||||
|
||||
input UpdateKategorieInput {
|
||||
name: String
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
createKategorie(input: CreateKategorieInput!): Kategorie! @requireAuth
|
||||
updateKategorie(id: Int!, input: UpdateKategorieInput!): Kategorie!
|
||||
@requireAuth
|
||||
deleteKategorie(id: Int!): Kategorie! @requireAuth
|
||||
}
|
||||
`
|
||||
@@ -0,0 +1,34 @@
|
||||
export const schema = gql`
|
||||
type KaufArtikel {
|
||||
id: Int!
|
||||
kauf: Kauf!
|
||||
kauf_id: Int!
|
||||
artikel: Artikel!
|
||||
artikel_id: Int!
|
||||
anzahl: Int!
|
||||
}
|
||||
|
||||
type Query {
|
||||
kaufArtikels: [KaufArtikel!]! @requireAuth
|
||||
kaufArtikel(id: Int!): KaufArtikel @requireAuth
|
||||
}
|
||||
|
||||
input CreateKaufArtikelInput {
|
||||
kauf_id: Int!
|
||||
artikel_id: Int!
|
||||
anzahl: Int!
|
||||
}
|
||||
|
||||
input UpdateKaufArtikelInput {
|
||||
kauf_id: Int
|
||||
artikel_id: Int
|
||||
anzahl: Int
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
createKaufArtikel(input: CreateKaufArtikelInput!): KaufArtikel! @requireAuth
|
||||
updateKaufArtikel(id: Int!, input: UpdateKaufArtikelInput!): KaufArtikel!
|
||||
@requireAuth
|
||||
deleteKaufArtikel(id: Int!): KaufArtikel! @requireAuth
|
||||
}
|
||||
`
|
||||
@@ -0,0 +1,29 @@
|
||||
export const schema = gql`
|
||||
type Kauf {
|
||||
id: Int!
|
||||
timestamp: DateTime!
|
||||
preis_ges: Float
|
||||
artikel: [KaufArtikel]!
|
||||
}
|
||||
|
||||
type Query {
|
||||
kaufs: [Kauf!]! @requireAuth
|
||||
kauf(id: Int!): Kauf @requireAuth
|
||||
}
|
||||
|
||||
input CreateKaufInput {
|
||||
timestamp: DateTime!
|
||||
preis_ges: Float
|
||||
}
|
||||
|
||||
input UpdateKaufInput {
|
||||
timestamp: DateTime
|
||||
preis_ges: Float
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
createKauf(input: CreateKaufInput!): Kauf! @requireAuth
|
||||
updateKauf(id: Int!, input: UpdateKaufInput!): Kauf! @requireAuth
|
||||
deleteKauf(id: Int!): Kauf! @requireAuth
|
||||
}
|
||||
`
|
||||
@@ -0,0 +1,39 @@
|
||||
import { db } from 'src/lib/db'
|
||||
|
||||
export const artikels = () => {
|
||||
return db.artikel.findMany()
|
||||
}
|
||||
|
||||
export const artikel = ({ id }) => {
|
||||
return db.artikel.findUnique({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const createArtikel = ({ input }) => {
|
||||
return db.artikel.create({
|
||||
data: input,
|
||||
})
|
||||
}
|
||||
|
||||
export const updateArtikel = ({ id, input }) => {
|
||||
return db.artikel.update({
|
||||
data: input,
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteArtikel = ({ id }) => {
|
||||
return db.artikel.delete({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const Artikel = {
|
||||
kategorie: (_obj, { root }) => {
|
||||
return db.artikel.findUnique({ where: { id: root?.id } }).kategorie()
|
||||
},
|
||||
kaeufe: (_obj, { root }) => {
|
||||
return db.artikel.findUnique({ where: { id: root?.id } }).kaeufe()
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export const standard = defineScenario({
|
||||
artikel: {
|
||||
one: { data: { name: 'String735050' } },
|
||||
two: { data: { name: 'String6988247' } },
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,54 @@
|
||||
import {
|
||||
artikels,
|
||||
artikel,
|
||||
createArtikel,
|
||||
updateArtikel,
|
||||
deleteArtikel,
|
||||
} from './artikels'
|
||||
|
||||
// Generated boilerplate tests do not account for all circumstances
|
||||
// and can fail without adjustments, e.g. Float.
|
||||
// Please refer to the RedwoodJS Testing Docs:
|
||||
// https://redwoodjs.com/docs/testing#testing-services
|
||||
// https://redwoodjs.com/docs/testing#jest-expect-type-considerations
|
||||
|
||||
describe('artikels', () => {
|
||||
scenario('returns all artikels', async (scenario) => {
|
||||
const result = await artikels()
|
||||
|
||||
expect(result.length).toEqual(Object.keys(scenario.artikel).length)
|
||||
})
|
||||
|
||||
scenario('returns a single artikel', async (scenario) => {
|
||||
const result = await artikel({ id: scenario.artikel.one.id })
|
||||
|
||||
expect(result).toEqual(scenario.artikel.one)
|
||||
})
|
||||
|
||||
scenario('creates a artikel', async () => {
|
||||
const result = await createArtikel({
|
||||
input: { name: 'String6975650' },
|
||||
})
|
||||
|
||||
expect(result.name).toEqual('String6975650')
|
||||
})
|
||||
|
||||
scenario('updates a artikel', async (scenario) => {
|
||||
const original = await artikel({ id: scenario.artikel.one.id })
|
||||
const result = await updateArtikel({
|
||||
id: original.id,
|
||||
input: { name: 'String5200162' },
|
||||
})
|
||||
|
||||
expect(result.name).toEqual('String5200162')
|
||||
})
|
||||
|
||||
scenario('deletes a artikel', async (scenario) => {
|
||||
const original = await deleteArtikel({
|
||||
id: scenario.artikel.one.id,
|
||||
})
|
||||
const result = await artikel({ id: original.id })
|
||||
|
||||
expect(result).toEqual(null)
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,36 @@
|
||||
import { db } from 'src/lib/db'
|
||||
|
||||
export const kategories = () => {
|
||||
return db.kategorie.findMany()
|
||||
}
|
||||
|
||||
export const kategorie = ({ id }) => {
|
||||
return db.kategorie.findUnique({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const createKategorie = ({ input }) => {
|
||||
return db.kategorie.create({
|
||||
data: input,
|
||||
})
|
||||
}
|
||||
|
||||
export const updateKategorie = ({ id, input }) => {
|
||||
return db.kategorie.update({
|
||||
data: input,
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteKategorie = ({ id }) => {
|
||||
return db.kategorie.delete({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const Kategorie = {
|
||||
artikel: (_obj, { root }) => {
|
||||
return db.kategorie.findUnique({ where: { id: root?.id } }).artikel()
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export const standard = defineScenario({
|
||||
kategorie: {
|
||||
one: { data: { name: 'String8168544' } },
|
||||
two: { data: { name: 'String7171026' } },
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,56 @@
|
||||
import {
|
||||
kategories,
|
||||
kategorie,
|
||||
createKategorie,
|
||||
updateKategorie,
|
||||
deleteKategorie,
|
||||
} from './kategories'
|
||||
|
||||
// Generated boilerplate tests do not account for all circumstances
|
||||
// and can fail without adjustments, e.g. Float.
|
||||
// Please refer to the RedwoodJS Testing Docs:
|
||||
// https://redwoodjs.com/docs/testing#testing-services
|
||||
// https://redwoodjs.com/docs/testing#jest-expect-type-considerations
|
||||
|
||||
describe('kategories', () => {
|
||||
scenario('returns all kategories', async (scenario) => {
|
||||
const result = await kategories()
|
||||
|
||||
expect(result.length).toEqual(Object.keys(scenario.kategorie).length)
|
||||
})
|
||||
|
||||
scenario('returns a single kategorie', async (scenario) => {
|
||||
const result = await kategorie({ id: scenario.kategorie.one.id })
|
||||
|
||||
expect(result).toEqual(scenario.kategorie.one)
|
||||
})
|
||||
|
||||
scenario('creates a kategorie', async () => {
|
||||
const result = await createKategorie({
|
||||
input: { name: 'String2189335' },
|
||||
})
|
||||
|
||||
expect(result.name).toEqual('String2189335')
|
||||
})
|
||||
|
||||
scenario('updates a kategorie', async (scenario) => {
|
||||
const original = await kategorie({
|
||||
id: scenario.kategorie.one.id,
|
||||
})
|
||||
const result = await updateKategorie({
|
||||
id: original.id,
|
||||
input: { name: 'String81840662' },
|
||||
})
|
||||
|
||||
expect(result.name).toEqual('String81840662')
|
||||
})
|
||||
|
||||
scenario('deletes a kategorie', async (scenario) => {
|
||||
const original = await deleteKategorie({
|
||||
id: scenario.kategorie.one.id,
|
||||
})
|
||||
const result = await kategorie({ id: original.id })
|
||||
|
||||
expect(result).toEqual(null)
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,39 @@
|
||||
import { db } from 'src/lib/db'
|
||||
|
||||
export const kaufArtikels = () => {
|
||||
return db.kaufArtikel.findMany()
|
||||
}
|
||||
|
||||
export const kaufArtikel = ({ id }) => {
|
||||
return db.kaufArtikel.findUnique({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const createKaufArtikel = ({ input }) => {
|
||||
return db.kaufArtikel.create({
|
||||
data: input,
|
||||
})
|
||||
}
|
||||
|
||||
export const updateKaufArtikel = ({ id, input }) => {
|
||||
return db.kaufArtikel.update({
|
||||
data: input,
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteKaufArtikel = ({ id }) => {
|
||||
return db.kaufArtikel.delete({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const KaufArtikel = {
|
||||
kauf: (_obj, { root }) => {
|
||||
return db.kaufArtikel.findUnique({ where: { id: root?.id } }).kauf()
|
||||
},
|
||||
artikel: (_obj, { root }) => {
|
||||
return db.kaufArtikel.findUnique({ where: { id: root?.id } }).artikel()
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
export const standard = defineScenario({
|
||||
kaufArtikel: {
|
||||
one: {
|
||||
data: {
|
||||
anzahl: 2209529,
|
||||
kauf: { create: { timestamp: 597422 } },
|
||||
artikel: { create: { name: 'String5421835' } },
|
||||
},
|
||||
},
|
||||
two: {
|
||||
data: {
|
||||
anzahl: 9755057,
|
||||
kauf: { create: { timestamp: 9620697 } },
|
||||
artikel: { create: { name: 'String8993250' } },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,62 @@
|
||||
import {
|
||||
kaufArtikels,
|
||||
kaufArtikel,
|
||||
createKaufArtikel,
|
||||
updateKaufArtikel,
|
||||
deleteKaufArtikel,
|
||||
} from './kaufArtikels'
|
||||
|
||||
// Generated boilerplate tests do not account for all circumstances
|
||||
// and can fail without adjustments, e.g. Float.
|
||||
// Please refer to the RedwoodJS Testing Docs:
|
||||
// https://redwoodjs.com/docs/testing#testing-services
|
||||
// https://redwoodjs.com/docs/testing#jest-expect-type-considerations
|
||||
|
||||
describe('kaufArtikels', () => {
|
||||
scenario('returns all kaufArtikels', async (scenario) => {
|
||||
const result = await kaufArtikels()
|
||||
|
||||
expect(result.length).toEqual(Object.keys(scenario.kaufArtikel).length)
|
||||
})
|
||||
|
||||
scenario('returns a single kaufArtikel', async (scenario) => {
|
||||
const result = await kaufArtikel({ id: scenario.kaufArtikel.one.id })
|
||||
|
||||
expect(result).toEqual(scenario.kaufArtikel.one)
|
||||
})
|
||||
|
||||
scenario('creates a kaufArtikel', async (scenario) => {
|
||||
const result = await createKaufArtikel({
|
||||
input: {
|
||||
kauf_id: scenario.kaufArtikel.two.kauf_id,
|
||||
artikel_id: scenario.kaufArtikel.two.artikel_id,
|
||||
anzahl: 8696596,
|
||||
},
|
||||
})
|
||||
|
||||
expect(result.kauf_id).toEqual(scenario.kaufArtikel.two.kauf_id)
|
||||
expect(result.artikel_id).toEqual(scenario.kaufArtikel.two.artikel_id)
|
||||
expect(result.anzahl).toEqual(8696596)
|
||||
})
|
||||
|
||||
scenario('updates a kaufArtikel', async (scenario) => {
|
||||
const original = await kaufArtikel({
|
||||
id: scenario.kaufArtikel.one.id,
|
||||
})
|
||||
const result = await updateKaufArtikel({
|
||||
id: original.id,
|
||||
input: { anzahl: 785481 },
|
||||
})
|
||||
|
||||
expect(result.anzahl).toEqual(785481)
|
||||
})
|
||||
|
||||
scenario('deletes a kaufArtikel', async (scenario) => {
|
||||
const original = await deleteKaufArtikel({
|
||||
id: scenario.kaufArtikel.one.id,
|
||||
})
|
||||
const result = await kaufArtikel({ id: original.id })
|
||||
|
||||
expect(result).toEqual(null)
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,36 @@
|
||||
import { db } from 'src/lib/db'
|
||||
|
||||
export const kaufs = () => {
|
||||
return db.kauf.findMany()
|
||||
}
|
||||
|
||||
export const kauf = ({ id }) => {
|
||||
return db.kauf.findUnique({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const createKauf = ({ input }) => {
|
||||
return db.kauf.create({
|
||||
data: input,
|
||||
})
|
||||
}
|
||||
|
||||
export const updateKauf = ({ id, input }) => {
|
||||
return db.kauf.update({
|
||||
data: input,
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const deleteKauf = ({ id }) => {
|
||||
return db.kauf.delete({
|
||||
where: { id },
|
||||
})
|
||||
}
|
||||
|
||||
export const Kauf = {
|
||||
artikel: (_obj, { root }) => {
|
||||
return db.kauf.findUnique({ where: { id: root?.id } }).artikel()
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export const standard = defineScenario({
|
||||
kauf: { one: { data: {} }, two: { data: {} } },
|
||||
})
|
||||
@@ -0,0 +1,28 @@
|
||||
import { kaufs, kauf, deleteKauf } from './kaufs'
|
||||
|
||||
// Generated boilerplate tests do not account for all circumstances
|
||||
// and can fail without adjustments, e.g. Float.
|
||||
// Please refer to the RedwoodJS Testing Docs:
|
||||
// https://redwoodjs.com/docs/testing#testing-services
|
||||
// https://redwoodjs.com/docs/testing#jest-expect-type-considerations
|
||||
|
||||
describe('kaufs', () => {
|
||||
scenario('returns all kaufs', async (scenario) => {
|
||||
const result = await kaufs()
|
||||
|
||||
expect(result.length).toEqual(Object.keys(scenario.kauf).length)
|
||||
})
|
||||
|
||||
scenario('returns a single kauf', async (scenario) => {
|
||||
const result = await kauf({ id: scenario.kauf.one.id })
|
||||
|
||||
expect(result).toEqual(scenario.kauf.one)
|
||||
})
|
||||
|
||||
scenario('deletes a kauf', async (scenario) => {
|
||||
const original = await deleteKauf({ id: scenario.kauf.one.id })
|
||||
const result = await kauf({ id: original.id })
|
||||
|
||||
expect(result).toEqual(null)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user