1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-04 17:18:23 -05:00
denoland-deno/tests/unit
Charlie Bellini 8f7787f81b
fix(ext/websocket): don't throw exception when sending to closed socket (#26932)
[The WebSocket specification for the `send`
function](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send)
says:

> The browser will throw an exception if you call `send()` when the
connection is in the `CONNECTING` state. If you call `send()` when the
connection is in the `CLOSING` or `CLOSED` states, the browser will
silently discard the data.

and:

> ### Exceptions
> 
> `InvalidStateError`
[`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)
> 
> Thrown if
[`WebSocket.readyState`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState)
is `CONNECTING`.

This pull request fixes the current behavior to match the specification.
Also, I believe it fixes #17586.
2024-11-22 00:04:47 +01:00
..
abort_controller_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
blob_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
body_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
broadcast_channel_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
build_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
cache_api_test.ts refactor(ext/fetch): align error messages (#25374) 2024-09-04 09:05:29 +02:00
chmod_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
chown_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
command_test.ts chore: make commandWithCwdIsAsync test less flaky (#26770) 2024-11-07 15:02:33 -08:00
console_test.ts fix(ext/console): ignore casing for named colors in css parsing (#26466) 2024-10-22 10:57:58 +02:00
copy_file_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
cron_test.ts refactor(ext/cron): align error messages (#25300) 2024-09-05 08:27:58 +02:00
custom_event_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
dir_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
dom_exception_test.ts chore(ext/web): use Error.captureStackTrace in DOMException constructor (#23986) 2024-06-05 01:09:13 +02:00
error_stack_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
error_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
esnext_test.ts feat: enable Float16Array support (#23490) 2024-04-23 15:18:27 +00:00
event_source_test.ts fix(ext/fetch): do not truncate field value in EventSource (#22368) 2024-03-25 07:31:13 -07:00
event_target_test.ts fix(ext/web): don't ignore capture in EventTarget.removeEventListener (#25788) 2024-09-23 11:19:59 +02:00
event_test.ts fix(runtime): use more null proto objects (#23921) 2024-05-23 00:03:35 +02:00
fetch_test.ts feat(fetch): accept async iterables for body (#26882) 2024-11-15 15:54:28 +01:00
ffi_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
file_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
filereader_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
files_test.ts test: remove DENO_FUTURE (#25587) 2024-09-12 11:30:12 +10:00
fs_events_test.ts chore(fs): undeprecate Deno.FsWatcher.prototype.return() (#25623) 2024-09-17 07:57:53 +10:00
get_random_values_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
globals_test.ts chore: update dlint to v0.68.0 for internal (#26711) 2024-11-04 12:17:11 -05:00
headers_test.ts refactor(ext/fetch): align error messages (#25374) 2024-09-04 09:05:29 +02:00
http_test.ts BREAKING(ext/net): improved error code accuracy (#25383) 2024-09-27 14:07:20 +00:00
image_bitmap_test.ts fix(ext/web): properly handle Blob case for createImageBitmap (#23518) 2024-05-07 04:47:42 -07:00
image_data_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
internals_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
intl_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
jupyter_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_queue_test.ts refactor(ext/kv): align error messages (#25500) 2024-09-19 13:20:09 +05:30
kv_queue_test_no_db_close.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_queue_undelivered_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_test.ts refactor(ext/kv): align error messages (#25500) 2024-09-19 13:20:09 +05:30
link_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
make_temp_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
message_channel_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
mkdir_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
navigator_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
net_test.ts BREAKING(ext/net): improved error code accuracy (#25383) 2024-09-27 14:07:20 +00:00
network_interfaces_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
ops_test.ts feat(jupyter): Add Deno.jupyter.image API (#26284) 2024-11-16 15:13:50 +00:00
os_test.ts refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508) 2024-09-16 21:39:37 +01:00
path_from_url_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
performance_test.ts perf(ext/web): optimize performance.measure() (#25774) 2024-09-20 16:24:59 -07:00
permissions_test.ts refactor: improve node permission checks (#26028) 2024-10-04 20:55:41 +01:00
process_test.ts BREAKING(fs): remove Deno.FsFile.prototype.rid (#25499) 2024-09-11 07:19:34 +10:00
progressevent_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
promise_hooks_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
read_dir_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
read_file_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
read_link_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
read_text_file_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
README.md test: remove usage of --unstable flag (#25549) 2024-09-10 11:28:59 +00:00
real_path_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
ref_unref_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
remove_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
rename_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
request_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
response_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
serve_test.ts feat(ext/http): abort event when request is cancelled (#26781) 2024-11-08 18:46:11 +05:30
signal_test.ts refactor(runtime/ops): use concrete error types (#26409) 2024-10-22 01:41:08 -07:00
stat_test.ts feat(ext/fs): add ctime to Deno.stats and use it in node compat layer (#24801) 2024-11-13 13:35:04 +09:00
stdio_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
streams_test.ts feat(fetch): accept async iterables for body (#26882) 2024-11-15 15:54:28 +01:00
structured_clone_test.ts fix(ext/web): Fix structuredClone Web API type declaration (any -> generic) (#22968) 2024-03-25 22:44:49 +01:00
symbol_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
symlink_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
test_util.ts test: remove DENO_FUTURE (#25587) 2024-09-12 11:30:12 +10:00
testing_test.ts refactor(cli/js): align error messages (#25406) 2024-09-04 09:19:55 +02:00
text_encoding_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
timers_test.ts test: remove DENO_FUTURE (#25587) 2024-09-12 11:30:12 +10:00
tls_sni_test.ts BREAKING(net): remove Deno.ConnectTlsOptions.{certChain,certFile,privateKey} and Deno.ListenTlsOptions.certChain,certFile,keyFile} (#25525) 2024-09-10 21:55:42 +00:00
tls_test.ts BREAKING(ext/net): improved error code accuracy (#25383) 2024-09-27 14:07:20 +00:00
truncate_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
tty_color_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
tty_test.ts test: remove DENO_FUTURE (#25587) 2024-09-12 11:30:12 +10:00
umask_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
url_search_params_test.ts feat(check): turn on noImplicitOverride (#25695) 2024-09-18 14:49:30 +01:00
url_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
urlpattern_test.ts Revert "fix(urlpattern): fallback to empty string for undefined group values" (#25961) 2024-10-02 09:02:46 -07:00
utime_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
version_test.ts feat: TypeScript 5.6 and npm:@types/node@22 (#25614) 2024-09-14 11:58:47 +01:00
wasm_test.ts docs: fix casing of Wasm (#26954) 2024-11-21 01:02:58 +00:00
webcrypto_test.ts fix(ext/crypto): fix identity test for x25519 derive bits (#26011) 2024-10-03 16:46:48 +05:30
webgpu_test.ts BREAKING(webgpu/unstable): move width and height options to UnsafeWindowSurface constructor (#24200) 2024-09-22 09:10:54 +05:30
websocket_test.ts fix(ext/websocket): don't throw exception when sending to closed socket (#26932) 2024-11-22 00:04:47 +01:00
websocketstream_test.ts.disabled chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
webstorage_test.ts fix(ext/webstorage): make getOwnPropertyDescriptor with symbol return undefined (#13348) 2024-10-07 07:59:27 -07:00
worker_permissions_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
worker_test.ts refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508) 2024-09-16 21:39:37 +01:00
write_file_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07:00
write_text_file_test.ts feat(cli): use NotCapable error for permission errors (#25431) 2024-09-10 11:12:24 -07: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.