|
1 | | -/* eslint-disable max-statements */ |
| 1 | + |
2 | 2 |
|
3 | 3 | import("reflect-metadata"); // Polyfill |
4 | 4 | import {assert} from "chai"; |
5 | 5 | import {describe, it} from "node:test"; |
6 | 6 | import type {User as IUser} from "./models/User"; |
7 | | -import type {FriendExt} from "./models/UserExt"; |
8 | 7 |
|
9 | 8 | describe("Decorators", () => { |
10 | 9 | it("user property marked as jsonIgnore must by dropped", async () => { |
11 | 10 | const {User} = await import("./models/User"); |
12 | 11 | const json: Record<string, unknown>[] = await import("./jsons/json-generator.json", {with: {type: "json"}}); |
| 12 | + const [object] = Reflect.get(json, "default") as typeof json; |
13 | 13 |
|
14 | | - const user = new User().fromJSON(json[0]); |
| 14 | + const user = new User().fromJSON(object); |
15 | 15 | user.isExpanded = true; |
16 | 16 | const obj = JSON.parse(JSON.stringify(user)) as IUser; |
17 | 17 |
|
18 | 18 | assert.isUndefined(obj.isExpanded); |
19 | 19 | }); |
20 | | - |
21 | | - it("class can be extended by decorator jsonObject", async () => { |
22 | | - const {UserExt} = await import("./models/UserExt"); |
23 | | - const json = await import("./jsons/json-generator.json", {with: {type: "json"}}); |
24 | | - const [object] = Reflect.get(json, "default") as typeof json; |
25 | | - |
26 | | - const user = new UserExt().fromJSON(object); |
27 | | - |
28 | | - assert.isTrue(user instanceof UserExt); |
29 | | - assert.strictEqual(user.id, object.id, "id is not equal"); |
30 | | - assert.strictEqual(user.index, object.index, "index is not equal"); |
31 | | - assert.strictEqual(user.guid, object.guid, "guid is not equal"); |
32 | | - assert.strictEqual(user.isActive, object.isActive, "isActive is not equal"); |
33 | | - assert.strictEqual(user.balance, object.balance, "balance is not equal"); |
34 | | - assert.strictEqual(user.picture, object.picture, "picture is not equal"); |
35 | | - assert.strictEqual(user.age, object.age, "age is not equal"); |
36 | | - assert.strictEqual(user.eyeColor, object.eyeColor, "eyeColor is not equal"); |
37 | | - assert.strictEqual(user.name, object.name, "name is not equal"); |
38 | | - assert.strictEqual(user.company, object.company, "company is not equal"); |
39 | | - assert.strictEqual(user.email, object.email, "email is not equal"); |
40 | | - assert.strictEqual(user.phone, object.phone, "phone is not equal"); |
41 | | - assert.strictEqual(user.address, object.address, "address is not equal"); |
42 | | - assert.strictEqual(user.about, object.about, "about is not equal"); |
43 | | - assert.strictEqual(user.latitude, object.latitude, "latitude is not equal"); |
44 | | - assert.strictEqual(user.longitude, object.longitude, "longitude is not equal"); |
45 | | - assert.deepEqual(user.tags, object.tags, "tags is not equal"); |
46 | | - assert.strictEqual(user.greeting, object.greeting, "greeting is not equal"); |
47 | | - assert.strictEqual(user.favoriteFruit, object.favoriteFruit, "favoriteFruit is not equal"); |
48 | | - |
49 | | - user.friends.forEach((friend: FriendExt, index: number) => { |
50 | | - assert.strictEqual(friend.id, object.friends[index].id, `friend ${String(index)} id is not equal`); |
51 | | - assert.strictEqual(friend.name, object.friends[index].name, `friend ${String(index)} name is not equal`); |
52 | | - }); |
53 | | - }); |
54 | 20 | }); |
0 commit comments