51 lines
1.3 KiB
TypeScript
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)
|
|
})
|
|
})
|