deno/cli/tests/unit
Kamil Ogórek 1d7203c24c
fix(ext/flash): Correctly handle errors for chunked responses (#17303)
The leading cause of the problem was that `handleResponse` has
`tryRespondChunked` passed as an argument, which in turn is implemented
as a call to `core.ops.op_try_flash_respond_chuncked`, that throws in
the repro code.

`handleResponse` was not handled correctly, as it not returned any
value, and had no `catch` attached to it.
It also effectively was never correctly handled inside two other blocks
with `resp.then` and `PromisePrototypeCatch(PromisePrototypeThen(resp,
"..."))` as well, as it just short-circuited the promise with an empty
resolve, instead of relying on the last `(async () => {})` block.

This change makes `handleResponse` return a correct value and attach
`onError` handler to the "non-thenable" variant of response handling
code.
2023-01-14 15:06:28 +01:00
..
abort_controller_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
blob_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
body_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
broadcast_channel_test.ts fix: check if BroadcastChannel is open before sending (#17366) 2023-01-12 13:43:36 +01:00
buffer_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
build_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
cache_api_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
chmod_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
chown_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
command_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
console_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
copy_file_test.ts fix(runtime/fs): preserve permissions in copyFileSync for macOS (#17412) 2023-01-14 13:45:30 +00:00
custom_event_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
dir_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
dom_exception_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
error_stack_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
error_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
esnext_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
event_target_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
event_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
fetch_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
ffi_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
file_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
filereader_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
files_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
flash_test.ts fix(ext/flash): Correctly handle errors for chunked responses (#17303) 2023-01-14 15:06:28 +01:00
flock_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
fs_events_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
get_random_values_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
globals_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
headers_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
http_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
internals_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
intl_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
io_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
link_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
make_temp_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
message_channel_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
metrics_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
mkdir_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
navigator_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
net_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
network_interfaces_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
opcall_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
os_test.ts feat(runtime/os): add Deno.env.has() (#17315) 2023-01-09 20:19:55 +01:00
path_from_url_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
performance_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
permissions_test.ts fix(permissions): process URL in Deno.FfiPermissionDescriptor.path for revoke() and request() (#17094) 2023-01-03 21:50:14 +01:00
process_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
progressevent_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
promise_hooks_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
read_dir_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
read_file_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
read_link_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
read_text_file_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
README.md chore: fix flaky netListenUnrefAndRef (#16892) 2022-12-02 12:41:52 -05:00
real_path_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
ref_unref_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
remove_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
rename_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
request_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
resources_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
response_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
signal_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
stat_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
stdio_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
streams_deprecated.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
structured_clone_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
symlink_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
sync_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
test_util.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
testing_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
text_encoding_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
timers_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
tls_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
truncate_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
tty_color_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
tty_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
umask_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
url_search_params_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
url_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
urlpattern_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
utime_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
version_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
wasm_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
webcrypto_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
webgpu_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
websocket_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
webstorage_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
worker_permissions_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
worker_types.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
write_file_test.ts feat: allow passing a ReadableStream to Deno.writeFile/Deno.writeTextFile (#17329) 2023-01-12 03:37:23 +01:00
write_text_file_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00

Deno runtime tests

Files in this directory are unit tests for Deno runtime.

Testing Deno runtime code requires checking API under different runtime permissions. To accomplish this all tests exercised are created using Deno.test() function.

import {} from "./test_util.ts";

Deno.test(function simpleTestFn(): void {
  // test code here
});

Deno.test(
  {
    ignore: Deno.build.os === "windows",
    permissions: { read: true, write: true },
  },
  function complexTestFn(): void {
    // test code here
  },
);

Running tests

There are two ways to run unit_test_runner.ts:

# Run all tests.
cargo run --bin deno -- test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/

# Run a specific test module
cargo run --bin deno -- test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/files_test.ts

Http server

target/debug/test_server is required to run when one's running unit tests. During CI it's spawned automatically, but if you want to run tests manually make sure that server is spawned otherwise there'll be cascade of test failures.