-
Notifications
You must be signed in to change notification settings - Fork 158
/
Copy pathdb_test.ts
51 lines (46 loc) · 1.83 KB
/
db_test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2023 the Deno authors. All rights reserved. MIT license.
import {
createUser,
deleteUser,
getUserById,
getUserByLogin,
getUserBySessionId,
getUserByStripeCustomerId,
setUserSession,
setUserSubscription,
type User,
} from "./db.ts";
import { assertEquals } from "std/testing/asserts.ts";
Deno.test("[db] user", async () => {
const initUser = {
id: crypto.randomUUID(),
login: crypto.randomUUID(),
avatarUrl: "https://example.com",
stripeCustomerId: crypto.randomUUID(),
sessionId: crypto.randomUUID(),
};
await createUser(initUser);
let user = { ...initUser, isSubscribed: false } as User;
assertEquals(await getUserById(user.id), user);
assertEquals(await getUserByLogin(user.login), user);
assertEquals(await getUserBySessionId(user.sessionId), user);
assertEquals(await getUserByStripeCustomerId(user.stripeCustomerId), user);
await setUserSubscription(user, true);
user = { ...user, isSubscribed: true };
assertEquals(await getUserById(user.id), user);
assertEquals(await getUserByLogin(user.login), user);
assertEquals(await getUserBySessionId(user.sessionId), user);
assertEquals(await getUserByStripeCustomerId(user.stripeCustomerId), user);
const sessionId = crypto.randomUUID();
await setUserSession(user, sessionId);
user = { ...user, sessionId };
assertEquals(await getUserById(user.id), user);
assertEquals(await getUserByLogin(user.login), user);
assertEquals(await getUserBySessionId(user.sessionId), user);
assertEquals(await getUserByStripeCustomerId(user.stripeCustomerId), user);
await deleteUser(user);
assertEquals(await getUserById(user.id), null);
assertEquals(await getUserByLogin(user.login), null);
assertEquals(await getUserBySessionId(user.sessionId), null);
assertEquals(await getUserByStripeCustomerId(user.stripeCustomerId), null);
});