summaryrefslogtreecommitdiff
path: root/cli/js/tests
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-04-27 15:40:47 +0200
committerGitHub <noreply@github.com>2020-04-27 15:40:47 +0200
commit8e9ab9e33ea2c972762cc345c584391c37731b33 (patch)
tree2513e3c35dd28095a4581db48ad5bae855a6e00c /cli/js/tests
parent8e4333fd99bdc71020c4e2d135da8315f94d9763 (diff)
refactor: decouple Console implementation from stdout (#4899)
When creating a console instance, one must pass "printFunc" arg which is used internally by Console to output messages. Due to numerous refactors there was a single method ("console.clear()") that used "Deno.stdout" instead of "printFunc". This commit unifies how "Console" outpus message, by using "printFunc" in all methods; consequently "Deno.stdout" is no longer imported in "cli/js/console.ts" making it a standalone module that doesn't depend on any CLI-specific APIs.
Diffstat (limited to 'cli/js/tests')
-rw-r--r--cli/js/tests/console_test.ts21
1 files changed, 4 insertions, 17 deletions
diff --git a/cli/js/tests/console_test.ts b/cli/js/tests/console_test.ts
index 43378e2ca..bceee9419 100644
--- a/cli/js/tests/console_test.ts
+++ b/cli/js/tests/console_test.ts
@@ -5,8 +5,6 @@ import { assert, assertEquals, unitTest } from "./test_util.ts";
// in order to "trick" TypeScript.
const {
inspect,
- writeSync,
- stdout,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} = Deno as any;
@@ -744,21 +742,10 @@ unitTest(function consoleTestError(): void {
});
unitTest(function consoleTestClear(): void {
- const stdoutWriteSync = stdout.writeSync;
- const uint8 = new TextEncoder().encode("\x1b[1;1H" + "\x1b[0J");
- let buffer = new Uint8Array(0);
-
- stdout.writeSync = (u8: Uint8Array): Promise<number> => {
- const tmp = new Uint8Array(buffer.length + u8.length);
- tmp.set(buffer, 0);
- tmp.set(u8, buffer.length);
- buffer = tmp;
-
- return writeSync(stdout.rid, u8);
- };
- console.clear();
- stdout.writeSync = stdoutWriteSync;
- assertEquals(buffer, uint8);
+ mockConsole((console, out) => {
+ console.clear();
+ assertEquals(out.toString(), "\x1b[1;1H" + "\x1b[0J");
+ });
});
// Test bound this issue