deno/tests/unit
David Sherret 0a162aaecc
ci: upload test results as artifacts (#31686)
This will allow us to track slow and flaky tests.
2025-12-22 12:49:29 -05:00
..
__snapshots__ fix(unstable): add missing decorators nodes in lint ast (#28834) 2025-04-10 17:49:05 +02:00
abort_controller_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
blob_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
body_test.ts feat: TypeScript 5.7 (#27857) 2025-01-31 16:07:42 -05:00
broadcast_channel_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
build_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
bundle_test.ts feat(bundle): support html entrypoint (#29856) 2025-09-09 12:18:10 -07:00
cache_api_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
chmod_test.ts fix(std/fs): implement chmod on windows (#30436) 2025-08-18 19:06:22 +02:00
chown_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
command_test.ts feat(process): support integer signals in Deno.kill and child.kill (#31153) 2025-11-04 07:24:22 -08:00
console_test.ts fix(ext/web): console.dir respects indent level (#31412) 2025-11-29 00:36:57 +01:00
copy_file_test.ts refactor(permissions): remove access check callback (#30050) 2025-07-10 21:40:20 -04:00
cron_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
custom_event_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
dir_test.ts feat: Deno.cwd() no longer requires --allow-read permission (#27192) 2025-01-27 15:13:59 +01:00
dom_exception_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
error_stack_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
error_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
esnext_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
event_source_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
event_target_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
event_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
fetch_test.ts fix(fetch): fix SOCKS5 proxy URL validation logic (#31604) 2025-12-18 15:53:11 +01:00
ffi_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
file_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
filereader_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
files_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
fs_events_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
get_random_values_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
globals_test.ts fix(rt): prevent Event to be overwritten on bootstrap (#30971) 2025-10-15 15:41:20 +02:00
headers_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
http_test.ts feat(ext/http): make websocket response headers mutable (#31000) 2025-10-17 10:59:39 +02:00
image_bitmap_test.ts fix(dts): specify the underlying buffer type in more places (#30640) 2025-09-08 09:05:09 -04:00
image_data_test.ts feat(ext/web): add ImageData Float16Array support (#31394) 2025-11-27 13:04:43 +01:00
internals_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
intl_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
jupyter_test.ts feat(jupyter): make GPUTexture and GPUBuffer displayable (#28117) 2025-02-18 00:29:45 -08:00
kv_queue_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
kv_queue_test_no_db_close.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
kv_queue_undelivered_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
kv_test.ts feat(kv): implement custom inspect for AtomicOperation (#30077) 2025-08-13 10:09:22 +02:00
link_test.ts refactor(permissions): push down special file checking to permissions container (#30005) 2025-07-09 20:50:26 +00:00
lint_plugin_test.ts fix(unstable): don't panic on invalid reported lint range (#31261) 2025-11-12 15:11:40 +01:00
lint_selectors_test.ts fix(unstable): parsing regex in selector with character class (#30462) 2025-08-20 07:58:09 +02:00
make_temp_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
message_channel_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
mkdir_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
mod.rs ci: upload test results as artifacts (#31686) 2025-12-22 12:49:29 -05:00
navigator_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
net_test.ts chore: disable flaky netTcpWithAbortSignal (#30755) 2025-09-17 05:43:50 +00:00
network_interfaces_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
ops_test.ts feat(test): Add setup and teardown APIs to Deno.test API (#30504) 2025-09-02 16:27:04 +02:00
os_test.ts feat: Deno.execPath() no longer requires --allow-read permission (#29620) 2025-06-25 20:57:35 +02:00
path_from_url_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
performance_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
permissions_test.ts fix: support Deno.permissions.query({name:"import"}) (#29610) 2025-06-26 22:13:56 +02:00
process_test.ts fix(ext/node): export ppid (#31137) 2025-10-31 09:58:53 +01:00
progressevent_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
promise_hooks_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
quic_test.ts chore: upgrade rustls (#29988) 2025-07-10 12:47:42 +00:00
read_dir_test.ts fix(types): Deno.readDirSync's type returns an IteratorObject (#27805) 2025-01-24 11:25:55 -05:00
read_file_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
read_link_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
read_text_file_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
README.md test: remove usage of --unstable flag (#25549) 2024-09-10 11:28:59 +00:00
real_path_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
ref_unref_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
remove_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
rename_test.ts chore: Rust 1.85.1 (#29412) 2025-05-24 04:01:25 +00:00
request_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
response_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
serve_test.ts refactor: http upgrade internals (#30612) 2025-09-19 09:33:32 +02:00
signal_test.ts feat(process): support integer signals in Deno.kill and child.kill (#31153) 2025-11-04 07:24:22 -08:00
stat_test.ts test: deflake stat_test.ts (#31555) 2025-12-10 17:05:50 +00:00
stdio_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
streams_test.ts fix(ext/web): fix promise chain leak of ReadableStream (#30871) 2025-10-13 11:12:40 +02:00
structured_clone_test.ts feat: TypeScript 5.7 (#27857) 2025-01-31 16:07:42 -05:00
symbol_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
symlink_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
test_util.ts feat(bundle): runtime API for deno bundle (#29949) 2025-09-04 09:47:27 -07:00
testing_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
text_encoding_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
timers_test.ts Revert "feat: use Node.js timers by default (#31272)" (#31490) 2025-12-04 00:50:11 +00:00
tls_sni_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
tls_test.ts feat: allow disable hostname verification in TLS (#30409) 2025-08-23 10:37:57 +05:30
truncate_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
tty_color_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
tty_test.ts feat: deno_core 0.344.0 (#29089) 2025-04-29 13:15:08 +02:00
umask_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
url_search_params_test.ts feat: TypeScript 5.7 (#27857) 2025-01-31 16:07:42 -05:00
url_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
urlpattern_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
utime_test.ts fix(fs): improve file utime checks (#30872) 2025-09-29 18:56:38 -04:00
version_test.ts feat: TypeScript 5.9.2 (#30601) 2025-09-03 09:23:13 -04:00
wasm_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
webcrypto_test.ts fix(dts): specify the underlying buffer type in more places (#30640) 2025-09-08 09:05:09 -04:00
webgpu_test.ts feat(ext/webgpu): implement GPUQueue.onSubmittedWorkDone (#29255) 2025-05-17 01:48:03 +02:00
websocket_test.ts feat(unstable): support Deno.HttpClient in WebSocket (#30692) 2025-09-12 11:42:25 +02:00
websocketstream_test.ts.disabled chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
webstorage_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
worker_permissions_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
worker_test.ts test: fix utimeSyncFileSuccess in js_unit_test::worker_test (#31273) 2025-11-17 15:35:27 +01:00
write_file_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
write_text_file_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 --location=http://js-unit-tests/foo/bar cli/tests/unit/

# Run a specific test module
cargo run --bin deno -- test --allow-all --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.