Merge commit '36c66dd290d3ce6eb1ccd310d0c658d4a32bb8eb' as 'repos/effect'

This commit is contained in:
-Puter
2026-07-19 03:25:10 +05:30
parent dd1071cc10
commit 2daf979036
2214 changed files with 673090 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
import { IndexedDb, IndexedDbTable } from "@effect/platform-browser"
import { assert, describe, it } from "@effect/vitest"
import { Schema } from "effect"
describe("IndexedDbTable", () => {
it("make", () => {
class Table extends IndexedDbTable.make({
name: "todo",
schema: Schema.Struct({
id: Schema.Number,
title: Schema.String,
completed: Schema.Boolean
}),
keyPath: "id"
}) {}
assert.equal(Table.tableName, "todo")
assert.equal(Table.autoIncrement, false)
assert.deepStrictEqual(Table.tableSchema.fields.id, Schema.Number)
assert.deepStrictEqual(Table.tableSchema.fields.title, Schema.String)
assert.deepStrictEqual(Table.tableSchema.fields.completed, Schema.Boolean)
assert.equal(Table.keyPath, "id")
})
it("autoIncrement", () => {
class Table1 extends IndexedDbTable.make({
name: "todo",
schema: Schema.Struct({
id: IndexedDb.AutoIncrement,
title: Schema.String
}),
keyPath: "id",
autoIncrement: true
}) {}
class Table2 extends IndexedDbTable.make({
name: "todo",
schema: Schema.Struct({
id: IndexedDb.AutoIncrement,
title: Schema.String
}),
keyPath: "id",
autoIncrement: false
}) {}
assert.equal(Table1.tableName, "todo")
assert.equal(Table1.autoIncrement, true)
assert.deepStrictEqual(
Table1.tableSchema.fields.id,
IndexedDb.AutoIncrement
)
assert.deepStrictEqual(Table1.tableSchema.fields.title, Schema.String)
assert.equal(Table1.keyPath, "id")
assert.equal(Table2.tableName, "todo")
assert.equal(Table2.autoIncrement, false)
assert.deepStrictEqual(
Table2.tableSchema.fields.id,
IndexedDb.AutoIncrement
)
assert.deepStrictEqual(Table2.tableSchema.fields.title, Schema.String)
assert.equal(Table2.keyPath, "id")
})
it("multiple keyPath", () => {
const Table = IndexedDbTable.make({
name: "todo",
schema: Schema.Struct({
id: Schema.Number,
title: Schema.String,
completed: Schema.Boolean
}),
keyPath: ["id", "title"]
})
assert.equal(Table.tableName, "todo")
assert.equal(Table.autoIncrement, false)
assert.deepStrictEqual(Table.tableSchema.fields.id, Schema.Number)
assert.deepStrictEqual(Table.tableSchema.fields.title, Schema.String)
assert.deepStrictEqual(Table.tableSchema.fields.completed, Schema.Boolean)
assert.deepStrictEqual(Table.keyPath, ["id", "title"])
})
it("no keyPath", () => {
const Table = IndexedDbTable.make({
name: "todo",
schema: Schema.Struct({
id: Schema.Number,
title: Schema.String,
completed: Schema.Boolean
})
})
assert.equal(Table.tableName, "todo")
assert.equal(Table.autoIncrement, false)
assert.deepStrictEqual(Table.tableSchema.fields.id, Schema.Number)
assert.deepStrictEqual(Table.tableSchema.fields.title, Schema.String)
assert.deepStrictEqual(Table.tableSchema.fields.completed, Schema.Boolean)
assert.deepStrictEqual(Table.keyPath, undefined)
})
})