1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-19 04:16:00 -05:00
denoland-deno/tests/unit
Marvin Hagemeister 3fb8fc1ba7
feat(unstable): refactor js lint plugin AST (#27615)
This PR changes the underlying buffer backed AST format we use for
JavaScript-based linting plugins. It adds support for various new types,
makes traversal code a lot easier and is more polished compared to
previous iterations.

Here is a quick summary (in no particular order):

- Node prop data is separate from traversal, which makes traversal code
so much easier to reason about. Previously, it was interleaved with node
prop data
- spans are in a separate table as well, as they are rarely needed.
- schema is separate from SWC conversion logic, which makes 
- supports recursive plain objects
- supports numbers
- supports bigint
- supports regex
- adds all SWC nodes

Apologies, this is kinda a big PR, but it's worth it imo.

_Marking as draft because I need to update some tests tomorrow._
2025-01-14 13:31:02 +01:00
..
__snapshots__ feat(unstable): refactor js lint plugin AST (#27615) 2025-01-14 13:31:02 +01: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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
cache_api_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
chmod_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
chown_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
command_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
console_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
copy_file_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
headers_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
http_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
image_bitmap_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
image_data_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 fix(kv): improve backoff error message and inline documentation (#27537) 2025-01-04 00:04:14 +01:00
link_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
lint_plugin_test.ts feat(unstable): refactor js lint plugin AST (#27615) 2025-01-14 13:31:02 +01:00
lint_selectors_test.ts fix(lint): fix single char selectors being ignored (#27576) 2025-01-08 00:21:50 +01: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
navigator_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
net_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
network_interfaces_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
ops_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
os_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
process_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 refactor(quic): introduce endpoint, 0rtt, cleanup (#27444) 2025-01-06 15:24:59 +01:00
read_dir_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +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 fix(ext/http): improve error message when underlying resource of request body unavailable (#27463) 2025-01-06 16:12:21 +09:00
signal_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
stat_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
stdio_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
streams_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
structured_clone_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
tls_sni_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
tls_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
umask_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
url_search_params_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
version_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
wasm_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
webcrypto_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
webgpu_test.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
websocket_test.ts fix(ext/websocket): Fix close code without reason (#27578) 2025-01-08 20:07:47 +05:30
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 chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00: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.