feat: LibraryItem.requestId nullable (scanned haves need no request) + test cleanup
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "LibraryItem" ALTER COLUMN "requestId" DROP NOT NULL;
|
||||
@@ -72,8 +72,8 @@ model Candidate {
|
||||
|
||||
model LibraryItem {
|
||||
id String @id @default(cuid())
|
||||
request Request @relation(fields: [requestId], references: [id], onDelete: Cascade)
|
||||
requestId String @unique
|
||||
request Request? @relation(fields: [requestId], references: [id], onDelete: Cascade)
|
||||
requestId String? @unique
|
||||
artist String
|
||||
album String
|
||||
path String
|
||||
|
||||
@@ -12,6 +12,7 @@ beforeEach(async () => {
|
||||
// Job cascades from Request; Request.monitoredReleaseId is SetNull. Delete children first.
|
||||
await prisma.job.deleteMany();
|
||||
await prisma.request.deleteMany();
|
||||
await prisma.libraryItem.deleteMany();
|
||||
await prisma.monitoredRelease.deleteMany();
|
||||
await prisma.watchedArtist.deleteMany();
|
||||
await prisma.config.deleteMany();
|
||||
|
||||
@@ -24,6 +24,7 @@ def conn():
|
||||
with connection.cursor() as cur:
|
||||
cur.execute('DELETE FROM "Job"')
|
||||
cur.execute('DELETE FROM "Request"')
|
||||
cur.execute('DELETE FROM "LibraryItem"')
|
||||
cur.execute('DELETE FROM "MonitoredRelease"')
|
||||
cur.execute('DELETE FROM "WatchedArtist"')
|
||||
cur.execute('DELETE FROM "Config"')
|
||||
@@ -33,6 +34,7 @@ def conn():
|
||||
with connection.cursor() as cur:
|
||||
cur.execute('DELETE FROM "Job"')
|
||||
cur.execute('DELETE FROM "Request"')
|
||||
cur.execute('DELETE FROM "LibraryItem"')
|
||||
cur.execute('DELETE FROM "MonitoredRelease"')
|
||||
cur.execute('DELETE FROM "WatchedArtist"')
|
||||
cur.execute('DELETE FROM "Config"')
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
def test_library_item_can_have_null_request(conn):
|
||||
with conn.cursor() as cur:
|
||||
cur.execute(
|
||||
'INSERT INTO "LibraryItem" (id, "requestId", artist, album, path, source, format, '
|
||||
'"qualityClass", "importedAt") '
|
||||
"VALUES (gen_random_uuid()::text, NULL, 'A', 'B', '/m/A/B', 'scan', 'FLAC', 2, now()) "
|
||||
"RETURNING id"
|
||||
)
|
||||
lib_id = cur.fetchone()[0]
|
||||
conn.commit()
|
||||
with conn.cursor() as cur:
|
||||
cur.execute('SELECT "requestId" FROM "LibraryItem" WHERE id = %s', (lib_id,))
|
||||
assert cur.fetchone()[0] is None
|
||||
Reference in New Issue
Block a user