Files
zopu-code/repos/effect/packages/platform-browser/test/IndexedDbVersion.test.ts

51 lines
1.3 KiB
TypeScript

import { IndexedDbTable, IndexedDbVersion } from "@effect/platform-browser"
import { assert, describe, it } from "@effect/vitest"
import { Schema } from "effect"
describe("IndexedDbVersion", () => {
it("make single table", () => {
class Table1 extends IndexedDbTable.make({
name: "todo1",
schema: Schema.Struct({
id: Schema.Number,
title: Schema.String,
completed: Schema.Boolean
}),
keyPath: "id"
}) {}
class Db extends IndexedDbVersion.make(Table1) {}
assert.equal(Db.tables.size, 1)
assert.equal(Db.tables.get("todo1"), Table1)
})
it("make multiple tables", () => {
class Table1 extends IndexedDbTable.make({
name: "todo1",
schema: Schema.Struct({
id: Schema.Number,
title: Schema.String,
completed: Schema.Boolean
}),
keyPath: "id"
}) {}
class Table2 extends IndexedDbTable.make({
name: "todo2",
schema: Schema.Struct({
id: Schema.Number,
title: Schema.String,
completed: Schema.Boolean
}),
keyPath: "id"
}) {}
class Db extends IndexedDbVersion.make(Table1, Table2) {}
assert.equal(Db.tables.size, 2)
assert.equal(Db.tables.get("todo1"), Table1)
assert.equal(Db.tables.get("todo2"), Table2)
})
})