|
8 | 8 | import { assert, describe, it, beforeEach } from "vitest";
|
9 | 9 |
|
10 | 10 | import { JsonParseNode, JsonSerializationWriter } from "../../src/index";
|
11 |
| -import { createTestBackedModelFromDiscriminatorValue, createTestParserFromDiscriminatorValue, serializeTestParser, TestBackedModel, type TestParser } from "./testEntity"; |
| 11 | +import { createTestBackedModelFromDiscriminatorValue, createTestParserFromDiscriminatorValue, LongRunningOperationStatusObject, serializeTestParser, TestBackedModel, type TestParser } from "./testEntity"; |
12 | 12 | import { UntypedTestEntity, serializeUntypedTestEntity } from "./untypedTestEntiy";
|
13 | 13 | import { BackingStore, BackingStoreFactorySingleton, createBackedModelProxyHandler, createUntypedArray, createUntypedBoolean, createUntypedNull, createUntypedNumber, createUntypedObject, createUntypedString } from "@microsoft/kiota-abstractions";
|
14 | 14 |
|
@@ -59,6 +59,37 @@ describe("JsonParseNode", () => {
|
59 | 59 | assert.deepEqual(stringValueResult, expectedObject);
|
60 | 60 | });
|
61 | 61 |
|
| 62 | + it("Test enum serialization", async () => { |
| 63 | + const inputObject: TestParser = { |
| 64 | + status: LongRunningOperationStatusObject.NotStarted, |
| 65 | + nextStatuses: [LongRunningOperationStatusObject.Succeeded, LongRunningOperationStatusObject.Failed], |
| 66 | + }; |
| 67 | + const expectedObject: TestParser = { |
| 68 | + status: LongRunningOperationStatusObject.NotStarted, |
| 69 | + nextStatuses: [LongRunningOperationStatusObject.Succeeded, LongRunningOperationStatusObject.Failed], |
| 70 | + }; |
| 71 | + |
| 72 | + const writer = new JsonSerializationWriter(); |
| 73 | + writer.writeObjectValue("", inputObject, serializeTestParser); |
| 74 | + const serializedContent = writer.getSerializedContent(); |
| 75 | + const decoder = new TextDecoder(); |
| 76 | + const contentAsStr = decoder.decode(serializedContent); |
| 77 | + const result = JSON.parse(contentAsStr); |
| 78 | + const stringValueResult = new JsonParseNode(result).getObjectValue(createTestParserFromDiscriminatorValue) as TestParser; |
| 79 | + assert.deepEqual(stringValueResult, expectedObject); |
| 80 | + }); |
| 81 | + |
| 82 | + it("Test collection of enum serialization", async () => { |
| 83 | + const writer = new JsonSerializationWriter(); |
| 84 | + const enums = [LongRunningOperationStatusObject.NotStarted, LongRunningOperationStatusObject.Succeeded]; |
| 85 | + |
| 86 | + writer.writeCollectionOfEnumValues("enum", enums); |
| 87 | + const serializedContent = writer.getSerializedContent(); |
| 88 | + const decoder = new TextDecoder(); |
| 89 | + const contentAsStr = decoder.decode(serializedContent); |
| 90 | + assert.equal(contentAsStr, '"enum":["notStarted","succeeded"],'); |
| 91 | + }); |
| 92 | + |
62 | 93 | it("encodes characters properly", async () => {
|
63 | 94 | const inputObject: TestParser = {
|
64 | 95 | testCollection: ["2", "3"],
|
|
0 commit comments