import * as Option from "effect/Option";
import { assert } from "@effect/vitest";
export const assertSome = <T>(
option: Option.Option<T>,
message: string = "Expected Some, got None"
): T => {
return Option.match(option, {
onNone: () => assert.fail(message),
onSome: (value) => value,
});
};
export const assertNone = <T>(
option: Option.Option<T>,
message: string = "Expected None, got Some"
): void => {
Option.match(option, {
onNone: () => {},
onSome: () => assert.fail(message),
});
};
it.effect("setToken stores provided value", () =>
Effect.gen(function* () {
const store = yield* TokenStore;
yield* store.setToken("abc");
const token = yield* store.getToken;
const value = assertSome(token);
expect(value).toBe("abc");
})
);
import * as Option from "effect/Option";
import { assert } from "@effect/vitest";
export const assertSome = <T>(
option: Option.Option<T>,
message: string = "Expected Some, got None"
): T => {
return Option.match(option, {
onNone: () => assert.fail(message),
onSome: (value) => value,
});
};
export const assertNone = <T>(
option: Option.Option<T>,
message: string = "Expected None, got Some"
): void => {
Option.match(option, {
onNone: () => {},
onSome: () => assert.fail(message),
});
};
it.effect("setToken stores provided value", () =>
Effect.gen(function* () {
const store = yield* TokenStore;
yield* store.setToken("abc");
const token = yield* store.getToken;
const value = assertSome(token);
expect(value).toBe("abc");
})
);