Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated API tests to use strongly-typed Event Store type #159

Merged
merged 2 commits into from
Dec 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/docs/snippets/gettingStarted/webApi/apiBDD.e2e.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { ShoppingCartStatus } from './shoppingCart';
import { shoppingCartApi } from './simpleApi';

// #region getting-started-e2e-tests
import { type EventStore } from '@event-driven-io/emmett';
import { getEventStoreDBEventStore } from '@event-driven-io/emmett-esdb';
import {
ApiE2ESpecification,
Expand All @@ -29,8 +28,8 @@ void describe('ShoppingCart E2E', () => {
esdbContainer = await new EventStoreDBContainer().start();

given = ApiE2ESpecification.for(
(): EventStore => getEventStoreDBEventStore(esdbContainer.getClient()),
(eventStore: EventStore) =>
() => getEventStoreDBEventStore(esdbContainer.getClient()),
(eventStore) =>
getApplication({
apis: [
shoppingCartApi(
Expand Down
9 changes: 3 additions & 6 deletions src/docs/snippets/gettingStarted/webApi/apiBDD.int.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ import { beforeEach, describe, it } from 'node:test';
import type { PricedProductItem, ShoppingCartEvent } from '../events';
import { shoppingCartApi } from './simpleApi';
// #region getting-started-integration-tests
import {
getInMemoryEventStore,
type EventStore,
} from '@event-driven-io/emmett';
import { getInMemoryEventStore } from '@event-driven-io/emmett';
import {
ApiSpecification,
existingStream,
Expand Down Expand Up @@ -119,8 +116,8 @@ void describe('ShoppingCart', () => {
const unitPrice = Math.random() * 10;

const given = ApiSpecification.for<ShoppingCartEvent>(
(): EventStore => getInMemoryEventStore(),
(eventStore: EventStore) =>
() => getInMemoryEventStore(),
(eventStore) =>
getApplication({
apis: [
shoppingCartApi(
Expand Down
5 changes: 2 additions & 3 deletions src/docs/snippets/gettingStarted/webApi/apiBDDE2EGiven.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,15 @@ void describe('ShoppingCart E2E', () => {
// #endregion test-container

// #region given
import { type EventStore } from '@event-driven-io/emmett';
import { getEventStoreDBEventStore } from '@event-driven-io/emmett-esdb';
import {
ApiE2ESpecification,
getApplication,
} from '@event-driven-io/emmett-expressjs';

const given = ApiE2ESpecification.for(
(): EventStore => getEventStoreDBEventStore(esdbContainer.getClient()),
(eventStore: EventStore) =>
() => getEventStoreDBEventStore(esdbContainer.getClient()),
(eventStore) =>
getApplication({
apis: [
shoppingCartApi(
Expand Down
5 changes: 2 additions & 3 deletions src/docs/snippets/gettingStarted/webApi/apiBDDE2ETest.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { type EventStore } from '@event-driven-io/emmett';
import {
ApiE2ESpecification,
getApplication,
Expand All @@ -15,8 +14,8 @@ const now = new Date();
const unitPrice = Math.random() * 10;

const given = ApiE2ESpecification.for(
(): EventStore => getEventStoreDBEventStore(esdbContainer.getClient()),
(eventStore: EventStore) =>
() => getEventStoreDBEventStore(esdbContainer.getClient()),
(eventStore) =>
getApplication({
apis: [
shoppingCartApi(
Expand Down
9 changes: 3 additions & 6 deletions src/docs/snippets/gettingStarted/webApi/apiBDDIntGiven.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ import type { ShoppingCartEvent } from '../events';
import { shoppingCartApi } from './simpleApi';

// #region given
import {
getInMemoryEventStore,
type EventStore,
} from '@event-driven-io/emmett';
import { getInMemoryEventStore } from '@event-driven-io/emmett';
import {
ApiSpecification,
getApplication,
Expand All @@ -16,8 +13,8 @@ const unitPrice = 100;
const now = new Date();

const given = ApiSpecification.for<ShoppingCartEvent>(
(): EventStore => getInMemoryEventStore(),
(eventStore: EventStore) =>
() => getInMemoryEventStore(),
(eventStore) =>
getApplication({
apis: [
shoppingCartApi(
Expand Down
9 changes: 3 additions & 6 deletions src/docs/snippets/gettingStarted/webApi/apiBDDIntTest.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
getInMemoryEventStore,
type EventStore,
} from '@event-driven-io/emmett';
import { getInMemoryEventStore } from '@event-driven-io/emmett';
import {
ApiSpecification,
getApplication,
Expand All @@ -18,8 +15,8 @@ const now = new Date();
const unitPrice = Math.random() * 10;

const given = ApiSpecification.for<ShoppingCartEvent>(
(): EventStore => getInMemoryEventStore(),
(eventStore: EventStore) =>
() => getInMemoryEventStore(),
(eventStore) =>
getApplication({
apis: [
shoppingCartApi(
Expand Down
52 changes: 26 additions & 26 deletions src/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@event-driven-io/core",
"type": "module",
"version": "0.23.0-alpha.7",
"version": "0.23.0-alpha.8",
"description": "Emmett - Event Sourcing development made simple",
"engines": {
"node": ">=20.11.1"
Expand Down
6 changes: 3 additions & 3 deletions src/packages/emmett-esdb/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@event-driven-io/emmett-esdb",
"type": "module",
"version": "0.23.0-alpha.7",
"version": "0.23.0-alpha.8",
"description": "Emmett - EventStoreDB - Event Sourcing development made simple",
"scripts": {
"build": "tsup",
Expand Down Expand Up @@ -48,10 +48,10 @@
],
"dependencies": {},
"devDependencies": {
"@event-driven-io/emmett-testcontainers": "0.23.0-alpha.7"
"@event-driven-io/emmett-testcontainers": "0.23.0-alpha.8"
},
"peerDependencies": {
"@event-driven-io/emmett": "0.23.0-alpha.7",
"@event-driven-io/emmett": "0.23.0-alpha.8",
"@eventstore/db-client": "^6.2.1"
}
}
4 changes: 2 additions & 2 deletions src/packages/emmett-expressjs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@event-driven-io/emmett-expressjs",
"version": "0.23.0-alpha.7",
"version": "0.23.0-alpha.8",
"type": "module",
"description": "Emmett - Event Sourcing development made simple",
"scripts": {
Expand Down Expand Up @@ -49,7 +49,7 @@
"dependencies": {},
"devDependencies": {},
"peerDependencies": {
"@event-driven-io/emmett": "0.23.0-alpha.7",
"@event-driven-io/emmett": "0.23.0-alpha.8",
"@types/express": "^4.17.21",
"@types/supertest": "^6.0.2",
"express": "^4.19.2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import supertest, { type Response } from 'supertest';

import type { EventStore } from '@event-driven-io/emmett';
import { WrapEventStore } from '@event-driven-io/emmett';
import assert from 'assert';
import type { Application } from 'express';
import type { TestRequest } from './apiSpecification';
Expand All @@ -17,13 +16,13 @@ export type ApiE2ESpecification = (...givenRequests: TestRequest[]) => {
};

export const ApiE2ESpecification = {
for: (
getEventStore: () => EventStore,
getApplication: (eventStore: EventStore) => Application,
for: <Store extends EventStore = EventStore>(
getEventStore: () => Store,
getApplication: (eventStore: Store) => Application,
): ApiE2ESpecification => {
{
return (...givenRequests: TestRequest[]) => {
const eventStore = WrapEventStore(getEventStore());
const eventStore = getEventStore();
const application = getApplication(eventStore);

return {
Expand Down
6 changes: 3 additions & 3 deletions src/packages/emmett-expressjs/src/testing/apiSpecification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ export type ApiSpecification<EventType extends Event = Event> = (
};

export const ApiSpecification = {
for: <EventType extends Event = Event>(
getEventStore: () => EventStore,
getApplication: (eventStore: EventStore) => Application,
for: <EventType extends Event = Event, Store extends EventStore = EventStore>(
getEventStore: () => Store,
getApplication: (eventStore: Store) => Application,
): ApiSpecification<EventType> => {
{
return (...givenStreams: TestEventStream<EventType>[]) => {
Expand Down
4 changes: 2 additions & 2 deletions src/packages/emmett-fastify/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@event-driven-io/emmett-fastify",
"version": "0.23.0-alpha.7",
"version": "0.23.0-alpha.8",
"type": "module",
"description": "Emmett - Event Sourcing development made simple",
"scripts": {
Expand Down Expand Up @@ -53,7 +53,7 @@
"dependencies": {},
"devDependencies": {},
"peerDependencies": {
"@event-driven-io/emmett": "0.23.0-alpha.7",
"@event-driven-io/emmett": "0.23.0-alpha.8",
"fastify": "^4.28.1",
"@fastify/compress": "^7.0.3",
"@fastify/etag": "^5.2.0",
Expand Down
6 changes: 3 additions & 3 deletions src/packages/emmett-mongodb/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@event-driven-io/emmett-mongodb",
"type": "module",
"version": "0.23.0-alpha.7",
"version": "0.23.0-alpha.8",
"description": "Emmett - MongoDB - Event Sourcing development made simple",
"scripts": {
"build": "tsup",
Expand Down Expand Up @@ -47,11 +47,11 @@
"dist"
],
"devDependencies": {
"@event-driven-io/emmett-testcontainers": "0.23.0-alpha.7",
"@event-driven-io/emmett-testcontainers": "0.23.0-alpha.8",
"@testcontainers/mongodb": "^10.13.2"
},
"peerDependencies": {
"@event-driven-io/emmett": "0.23.0-alpha.7",
"@event-driven-io/emmett": "0.23.0-alpha.8",
"mongodb": "^6.10.0"
}
}
Loading
Loading