summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorJared Beller <25756846+jbellerb@users.noreply.github.com>2021-02-13 11:56:56 -0500
committerGitHub <noreply@github.com>2021-02-13 11:56:56 -0500
commitb50691efed482496e241857921b66b65bec61655 (patch)
tree63acea6b2e2b1ae9ca43585f22800cade8458e27 /cli/tests
parentaf460fc464562566dc1534c0f61f53c2976b9bd7 (diff)
refactor(core): Strongly typed deserialization of JSON ops (#9423)
This PR makes json_op_sync/async generic to all Deserialize/Serialize types instead of the loosely-typed serde_json::Value. Since serde_json::Value implements Deserialize/Serialize, very little existing code needs to be updated, however as json_op_sync/async are now generic, type inference is broken in some cases (see cli/build.rs:146). I've found this reduces a good bit of boilerplate, as seen in the updated deno_core examples. This change may also reduce serialization and deserialization overhead as serde has a better idea of what types it is working with. I am currently working on benchmarks to confirm this and I will update this PR with my findings.
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/dispatch_json_test.ts18
1 files changed, 2 insertions, 16 deletions
diff --git a/cli/tests/unit/dispatch_json_test.ts b/cli/tests/unit/dispatch_json_test.ts
index 1288384e3..c283e20c9 100644
--- a/cli/tests/unit/dispatch_json_test.ts
+++ b/cli/tests/unit/dispatch_json_test.ts
@@ -21,22 +21,8 @@ unitTest(function malformedJsonControlBuffer(): void {
unitTest(function invalidPromiseId(): void {
const opId = Deno.core.ops()["op_open_async"];
- const argsObj = {
- promiseId: "1. NEIN!",
- path: "/tmp/P.I.S.C.I.X/yeah",
- mode: 0o666,
- options: {
- read: true,
- write: true,
- create: true,
- truncate: false,
- append: false,
- createNew: false,
- },
- };
- const argsText = JSON.stringify(argsObj);
- const argsBuf = new TextEncoder().encode(argsText);
- const resBuf = Deno.core.send(opId, argsBuf);
+ const reqBuf = new Uint8Array([0, 0, 0, 0, 0, 0, 0]);
+ const resBuf = Deno.core.send(opId, reqBuf);
const resText = new TextDecoder().decode(resBuf);
const resObj = JSON.parse(resText);
console.error(resText);