| ... | ... | @@ -4,23 +4,27 @@ import * as SqlClient from "effect/unstable/sql/SqlClient"; |
| 4 | 4 | |
| 5 | 5 | import * as SqliteClient from "./NodeSqliteClient.ts"; |
| 6 | 6 | |
| 7 | | it.effect("runs prepared queries and returns positional values", () => |
| 8 | | Effect.gen(function* () { |
| 9 | | const sql = yield* SqlClient.SqlClient; |
| 7 | const layer = it.layer(SqliteClient.layerMemory()); |
| 10 | 8 | |
| 11 | | yield* sql`CREATE TABLE entries(id INTEGER PRIMARY KEY, name TEXT NOT NULL)`; |
| 12 | | yield* sql`INSERT INTO entries(name) VALUES (${"alpha"}), (${"beta"})`; |
| 9 | layer("NodeSqliteClient", (it) => { |
| 10 | it.effect("runs prepared queries and returns positional values", () => |
| 11 | Effect.gen(function* () { |
| 12 | const sql = yield* SqlClient.SqlClient; |
| 13 | 13 | |
| 14 | | const rows = yield* sql<{ readonly id: number; readonly name: string }>` |
| 14 | yield* sql`CREATE TABLE entries(id INTEGER PRIMARY KEY, name TEXT NOT NULL)`; |
| 15 | yield* sql`INSERT INTO entries(name) VALUES (${"alpha"}), (${"beta"})`; |
| 16 | |
| 17 | const rows = yield* sql<{ readonly id: number; readonly name: string }>` |
| 15 | 18 | SELECT id, name FROM entries ORDER BY id |
| 16 | 19 | `; |
| 17 | | assert.equal(rows.length, 2); |
| 18 | | assert.equal(rows[0]?.name, "alpha"); |
| 19 | | assert.equal(rows[1]?.name, "beta"); |
| 20 | assert.equal(rows.length, 2); |
| 21 | assert.equal(rows[0]?.name, "alpha"); |
| 22 | assert.equal(rows[1]?.name, "beta"); |
| 20 | 23 | |
| 21 | | const values = yield* sql`SELECT id, name FROM entries ORDER BY id`.values; |
| 22 | | assert.equal(values.length, 2); |
| 23 | | assert.equal(values[0]?.[1], "alpha"); |
| 24 | | assert.equal(values[1]?.[1], "beta"); |
| 25 | | }).pipe(Effect.provide(SqliteClient.layerMemory())), |
| 26 | | ); |
| 24 | const values = yield* sql`SELECT id, name FROM entries ORDER BY id`.values; |
| 25 | assert.equal(values.length, 2); |
| 26 | assert.equal(values[0]?.[1], "alpha"); |
| 27 | assert.equal(values[1]?.[1], "beta"); |
| 28 | }), |
| 29 | ); |
| 30 | }); |