import { test } from '@japa/runner' import db from '@adonisjs/lucid/services/db' import { pendingClass } from '#lib/release/index' test.group('Pending classes / SQL pending_class()', () => { test('the SQL function agrees with pendingClass', async ({ assert }) => { const cases: [string, number, boolean][] = [ ['c04212a389cf69edc54767355ab5285f', 5_000_000, false], ['c04212a389cf69edc54767355ab5285f', 5_000_000, true], ['Zx5AjNaK-mh7CFg6Hf8uu', 500_000_000, false], ['1650777167', 100, false], ['mrrtmzrzmi4dgmrzmyytqmlbztczbx', 2_000_000_000, false], ['PsNdnYiugfZ.rar', 20_000_000, false], ['n5d1ueIf34X', 20_000_000, true], ['sgkra vU7u2yuw9LDLCjDu04pOez', 999, false], ['Description - Lt5nHjlo3RiuBb3C', 40_000_000, false], ['ABCDEFGHIJKLMNOP', 0, false], ] for (const [name, bytes, partial] of cases) { const { rows } = await db.rawQuery(`SELECT pending_class(?, ?::bigint, ?) AS k`, [ name, bytes, partial, ]) assert.equal(Number(rows[0].k), pendingClass(name, bytes, partial), name) } }) })