alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
56 lines (42 loc) • 1.3 kB
text/typescript
import { $context, Alepha } from "alepha";
import { describe, expect, it } from "vitest";
import { MissingContextError } from "../errors/MissingContextError.ts";
describe("$context", () => {
it("should throw MissingContextError outside injection", () => {
expect(() => $context()).toThrow(MissingContextError);
});
it("should return alepha instance during injection", () => {
let capturedAlepha: unknown;
class App {
_ctx = (() => {
const ctx = $context();
capturedAlepha = ctx.alepha;
})();
}
const alepha = Alepha.create();
alepha.inject(App);
expect(capturedAlepha).toBe(alepha);
});
it("should return service definition during injection", () => {
let capturedService: unknown;
class App {
_ctx = (() => {
const ctx = $context();
capturedService = ctx.service;
})();
}
Alepha.create().inject(App);
expect(capturedService).toBe(App);
});
it("should return undefined module when no module is used", () => {
let capturedModule: unknown = "NOT_SET";
class App {
_ctx = (() => {
const ctx = $context();
capturedModule = ctx.module;
})();
}
Alepha.create().inject(App);
expect(capturedModule).toBeUndefined();
});
});