mirror of
https://github.com/nicetry247/offlineacademy.git
synced 2026-07-26 11:58:44 +00:00
test: verify stale course deletion after missing folders
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { mkdir, rm, writeFile } from 'fs/promises'
|
||||
import { join } from 'path'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { scanCoursesDirectory } from '@/lib/scanner'
|
||||
|
||||
function assert(condition: unknown, message: string) {
|
||||
if (!condition) throw new Error(message)
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const root = '/tmp/offlineacademy-stale-scan'
|
||||
const coursesRoot = join(root, 'My_Courses')
|
||||
const coursePath = join(coursesRoot, 'Stale Course', '01 - Module')
|
||||
|
||||
await rm(root, { recursive: true, force: true })
|
||||
await mkdir(coursePath, { recursive: true })
|
||||
await writeFile(join(coursePath, '01 - Lesson.mp4'), '')
|
||||
|
||||
await prisma.setting.upsert({
|
||||
where: { key: 'coursesRoot' },
|
||||
update: { value: coursesRoot },
|
||||
create: { key: 'coursesRoot', value: coursesRoot },
|
||||
})
|
||||
|
||||
await scanCoursesDirectory({ maxConcurrency: 1, maxLessonsPerCourse: 10, maxModulesPerCourse: 5 })
|
||||
|
||||
const before = await prisma.course.count()
|
||||
assert(before === 1, `expected 1 course before delete, got ${before}`)
|
||||
|
||||
await rm(join(coursesRoot, 'Stale Course'), { recursive: true, force: true })
|
||||
|
||||
await scanCoursesDirectory({ maxConcurrency: 1, maxLessonsPerCourse: 10, maxModulesPerCourse: 5 })
|
||||
|
||||
const after = await prisma.course.count()
|
||||
assert(after === 0, `expected 0 courses after delete, got ${after}`)
|
||||
|
||||
console.log('stale course deletion verification passed')
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((error) => {
|
||||
console.error(error)
|
||||
process.exitCode = 1
|
||||
})
|
||||
.finally(async () => {
|
||||
await prisma.$disconnect()
|
||||
})
|
||||
Reference in New Issue
Block a user