Skip to content

Commit 7be3fef

Browse files
committed
Bumped Emmett to 0.11.0 and adjusted
1 parent a79b2ae commit 7be3fef

File tree

10 files changed

+56
-56
lines changed

10 files changed

+56
-56
lines changed

package-lock.json

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
},
3939
"homepage": "https://github.com/oskardudycz/EventSourcing.NodeJS#readme",
4040
"dependencies": {
41-
"@event-driven-io/emmett-esdb": "0.10.0",
42-
"@event-driven-io/emmett-expressjs": "0.10.0",
43-
"@event-driven-io/emmett-testcontainers": "0.10.0"
41+
"@event-driven-io/emmett-esdb": "0.11.0",
42+
"@event-driven-io/emmett-expressjs": "0.11.0",
43+
"@event-driven-io/emmett-testcontainers": "0.11.0"
4444
},
4545
"devDependencies": {
4646
"@types/node": "20.11.30",

src/guestStayAccounts/api/api.e2e.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,6 @@ describe('guestStayAccount E2E', () => {
220220
void it(`doesn't checkout`, () =>
221221
given(...checkedOutAccount)
222222
.when(checkOut)
223-
.then([expectError(403, { detail: `NotOpened` })]));
223+
.then([expectError(403, { detail: `NotCheckedIn` })]));
224224
});
225225
});

src/guestStayAccounts/api/api.int.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
formatDateToUtcYYYYMMDD,
33
getInMemoryEventStore,
44
type EventStore,
5+
type TestEventStream,
56
} from '@event-driven-io/emmett';
67
import {
78
ApiSpecification,
@@ -12,7 +13,6 @@ import {
1213
getApplication,
1314
type TestRequest,
1415
} from '@event-driven-io/emmett-expressjs';
15-
import type { TestEventStream } from '@event-driven-io/emmett-expressjs/dist/testing/utils';
1616
import { randomUUID } from 'node:crypto';
1717
import { beforeEach, describe, it } from 'node:test';
1818
import {
@@ -426,14 +426,14 @@ void describe('Guest stay account', () => {
426426
given(checkedOutAccount)
427427
.when(checkOut)
428428
.then([
429-
expectError(403, { detail: `NotOpened` }),
429+
expectError(403, { detail: `NotCheckedIn` }),
430430
expectNewEvents(guestStayAccountId, [
431431
{
432432
type: 'GuestCheckoutFailed',
433433
data: {
434434
guestStayAccountId,
435435
groupCheckoutId: undefined,
436-
reason: 'NotOpened',
436+
reason: 'NotCheckedIn',
437437
failedAt: now,
438438
},
439439
},

src/guestStayAccounts/api/api.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ type CheckOutRequest = Request<
5555
unknown
5656
>;
5757

58-
type GetShoppingCartRequest = Request<
58+
type GetGuestStayAccountDetailsRequest = Request<
5959
Partial<{ guestId: string; roomId: string; checkInDate: string }>,
6060
unknown,
6161
unknown
@@ -153,7 +153,7 @@ export const guestStayAccountsApi =
153153
}),
154154
);
155155

156-
// CheckOut Shopping Cart
156+
// CheckOut Guest
157157
router.delete(
158158
'/guests/:guestId/stays/:roomId/periods/:checkInDate',
159159
on(async (request: CheckOutRequest) => {
@@ -179,10 +179,10 @@ export const guestStayAccountsApi =
179179
}),
180180
);
181181

182-
// Get Shopping Cart
182+
// Get Guest Stay Account Details
183183
router.get(
184184
'/guests/:guestId/stays/:roomId/periods/:checkInDate',
185-
on(async (request: GetShoppingCartRequest) => {
185+
on(async (request: GetGuestStayAccountDetailsRequest) => {
186186
const guestStayAccountId = parseGuestStayAccountId(request.params);
187187

188188
const result = await getGuestStayDetails(
@@ -192,7 +192,7 @@ export const guestStayAccountsApi =
192192

193193
if (result === null) return NotFound();
194194

195-
if (result.state.status !== 'Opened') return NotFound();
195+
if (result.state.status !== 'CheckedIn') return NotFound();
196196

197197
return OK({
198198
body: result.state,

src/guestStayAccounts/businessLogic.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import { IllegalStateError, type Command } from '@event-driven-io/emmett';
22
import {
33
toGuestStayAccountId,
44
type ChargeRecorded,
5+
type CheckedIn,
56
type GuestCheckedIn,
67
type GuestCheckedOut,
78
type GuestCheckoutFailed,
89
type GuestStayAccount,
910
type GuestStayAccountEvent,
10-
type Opened,
1111
type PaymentRecorded,
1212
} from './guestStayAccount';
1313

@@ -74,7 +74,7 @@ export const recordCharge = (
7474
{ data: { guestStayAccountId, chargeId, amount }, metadata }: RecordCharge,
7575
state: GuestStayAccount,
7676
): ChargeRecorded => {
77-
assertIsOpened(state);
77+
assertIsCheckedIn(state);
7878

7979
return {
8080
type: 'ChargeRecorded',
@@ -91,7 +91,7 @@ export const recordPayment = (
9191
{ data: { guestStayAccountId, paymentId, amount }, metadata }: RecordPayment,
9292
state: GuestStayAccount,
9393
): PaymentRecorded => {
94-
assertIsOpened(state);
94+
assertIsCheckedIn(state);
9595

9696
return {
9797
type: 'PaymentRecorded',
@@ -110,13 +110,13 @@ export const checkOut = (
110110
): GuestCheckedOut | GuestCheckoutFailed => {
111111
const now = metadata?.now ?? new Date();
112112

113-
if (state.status !== 'Opened')
113+
if (state.status !== 'CheckedIn')
114114
return {
115115
type: 'GuestCheckoutFailed',
116116
data: {
117117
guestStayAccountId,
118118
groupCheckoutId,
119-
reason: 'NotOpened',
119+
reason: 'NotCheckedIn',
120120
failedAt: now,
121121
},
122122
};
@@ -165,8 +165,8 @@ export const decide = (
165165
}
166166
};
167167

168-
const assertDoesNotExist = (state: GuestStayAccount): state is Opened => {
169-
if (state.status === 'Opened')
168+
const assertDoesNotExist = (state: GuestStayAccount): state is CheckedIn => {
169+
if (state.status === 'CheckedIn')
170170
throw new IllegalStateError(`Guest is already checked-in!`);
171171

172172
if (state.status === 'CheckedOut')
@@ -175,7 +175,7 @@ const assertDoesNotExist = (state: GuestStayAccount): state is Opened => {
175175
return true;
176176
};
177177

178-
const assertIsOpened = (state: GuestStayAccount): state is Opened => {
178+
const assertIsCheckedIn = (state: GuestStayAccount): state is CheckedIn => {
179179
if (state.status === 'NotExisting')
180180
throw new IllegalStateError(`Guest account doesn't exist!`);
181181

src/guestStayAccounts/businessLogic.unit.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ void describe('Guest Stay Account', () => {
101101
data: {
102102
guestStayAccountId,
103103
groupCheckoutId: undefined,
104-
reason: 'NotOpened',
104+
reason: 'NotCheckedIn',
105105
failedAt: now,
106106
},
107107
},
@@ -491,7 +491,7 @@ void describe('Guest Stay Account', () => {
491491
data: {
492492
guestStayAccountId,
493493
groupCheckoutId: undefined,
494-
reason: 'NotOpened',
494+
reason: 'NotCheckedIn',
495495
failedAt: now,
496496
},
497497
},

src/guestStayAccounts/guestStayAccount.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export type GuestCheckoutFailed = Event<
4747
'GuestCheckoutFailed',
4848
{
4949
guestStayAccountId: string;
50-
reason: 'NotOpened' | 'BalanceNotSettled';
50+
reason: 'NotCheckedIn' | 'BalanceNotSettled';
5151
failedAt: Date;
5252
groupCheckoutId?: string;
5353
}
@@ -66,11 +66,11 @@ export type GuestStayAccountEvent =
6666

6767
export type NotExisting = { status: 'NotExisting' };
6868

69-
export type Opened = { status: 'Opened'; balance: number };
69+
export type CheckedIn = { status: 'CheckedIn'; balance: number };
7070

7171
export type CheckedOut = { status: 'CheckedOut' };
7272

73-
export type GuestStayAccount = NotExisting | Opened | CheckedOut;
73+
export type GuestStayAccount = NotExisting | CheckedIn | CheckedOut;
7474

7575
export const initialState = (): GuestStayAccount => ({
7676
status: 'NotExisting',
@@ -93,27 +93,27 @@ export const evolve = (
9393
switch (type) {
9494
case 'GuestCheckedIn': {
9595
return state.status === 'NotExisting'
96-
? { status: 'Opened', balance: 0 }
96+
? { status: 'CheckedIn', balance: 0 }
9797
: state;
9898
}
9999
case 'ChargeRecorded': {
100-
return state.status === 'Opened'
100+
return state.status === 'CheckedIn'
101101
? {
102102
...state,
103103
balance: state.balance - event.amount,
104104
}
105105
: state;
106106
}
107107
case 'PaymentRecorded': {
108-
return state.status === 'Opened'
108+
return state.status === 'CheckedIn'
109109
? {
110110
...state,
111111
balance: state.balance + event.amount,
112112
}
113113
: state;
114114
}
115115
case 'GuestCheckedOut': {
116-
return state.status === 'Opened' ? { status: 'CheckedOut' } : state;
116+
return state.status === 'CheckedIn' ? { status: 'CheckedOut' } : state;
117117
}
118118
case 'GuestCheckoutFailed': {
119119
return state;

src/guestStayAccounts/guestStayDetails.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ import type { GuestStayAccountEvent } from './guestStayAccount';
33

44
export type NotExisting = { status: 'NotExisting' };
55

6-
export type Opened = {
6+
export type CheckedIn = {
77
id: string;
88
guestId: string;
99
roomId: string;
10-
status: 'Opened' | 'CheckedOut';
10+
status: 'CheckedIn' | 'CheckedOut';
1111
balance: number;
1212
transactionsCount: number;
1313
transactions: { id: string; amount: number }[];
1414
checkedInAt: Date;
1515
checkedOutAt?: Date;
1616
};
1717

18-
export type GuestStayDetails = NotExisting | Opened;
18+
export type GuestStayDetails = NotExisting | CheckedIn;
1919

2020
export const initialState = (): GuestStayDetails => ({
2121
status: 'NotExisting',
@@ -32,7 +32,7 @@ export const evolve = (
3232
id: event.guestStayAccountId,
3333
guestId: event.guestId,
3434
roomId: event.roomId,
35-
status: 'Opened',
35+
status: 'CheckedIn',
3636
balance: 0,
3737
transactionsCount: 0,
3838
transactions: [],
@@ -41,7 +41,7 @@ export const evolve = (
4141
: state;
4242
}
4343
case 'ChargeRecorded': {
44-
return state.status === 'Opened'
44+
return state.status === 'CheckedIn'
4545
? {
4646
...state,
4747
balance: state.balance - event.amount,
@@ -54,7 +54,7 @@ export const evolve = (
5454
: state;
5555
}
5656
case 'PaymentRecorded': {
57-
return state.status === 'Opened'
57+
return state.status === 'CheckedIn'
5858
? {
5959
...state,
6060
balance: state.balance + event.amount,
@@ -67,7 +67,7 @@ export const evolve = (
6767
: state;
6868
}
6969
case 'GuestCheckedOut': {
70-
return state.status === 'Opened'
70+
return state.status === 'CheckedIn'
7171
? {
7272
...state,
7373
status: 'CheckedOut',

src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ const eventStore = getEventStoreDBEventStore(eventStoreDBClient);
1313
const doesGuestStayExist = (_guestId: string, _roomId: string, _day: Date) =>
1414
Promise.resolve(true);
1515

16-
const shoppingCarts = guestStayAccountsApi(
16+
const guestStayAccounts = guestStayAccountsApi(
1717
eventStore,
1818
doesGuestStayExist,
1919
(prefix) => `${prefix}-${randomUUID()}`,
2020
() => new Date(),
2121
);
2222

2323
const application: Application = getApplication({
24-
apis: [shoppingCarts],
24+
apis: [guestStayAccounts],
2525
});
2626

2727
startAPI(application);

0 commit comments

Comments
 (0)