Files
zopu-code/repos/effect-smol/packages/effect/test/unstable/eventlog/EventJournal.test.ts

26 lines
934 B
TypeScript

import { assert, describe, it } from "@effect/vitest"
import { Effect } from "effect"
import * as EventJournal from "effect/unstable/eventlog/EventJournal"
describe("EventJournal", () => {
it.effect("records entries in memory and publishes local changes", () =>
Effect.gen(function*() {
const journal = yield* EventJournal.EventJournal
let created = 0
yield* journal.write({
event: "test",
primaryKey: "pk-1",
payload: new Uint8Array([1, 2, 3]),
effect: (entry) =>
Effect.sync(() => {
created = entry.createdAtMillis
})
})
const entries = yield* journal.entries
assert.strictEqual(entries.length, 1)
assert.strictEqual(entries[0].event, "test")
assert.strictEqual(entries[0].primaryKey, "pk-1")
assert.strictEqual(entries[0].createdAtMillis, created)
}).pipe(Effect.provide(EventJournal.layerMemory)))
})