deno/cli/js/tests
2020-03-11 21:54:53 +01:00
..
blob_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
body_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
buffer_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
build_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
chmod_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
chown_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
console_test.ts refactor: Cleanup options object parameters (#4296) 2020-03-10 12:08:58 -04:00
copy_file_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
custom_event_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
dir_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
dispatch_json_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
dispatch_minimal_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
dom_iterable_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
error_stack_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
event_target_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
event_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
fetch_test.ts refactor: uncomment tests broken tests, use skip (#4311) 2020-03-10 16:38:02 +01:00
file_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
files_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
form_data_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
format_error_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
fs_events_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
get_random_values_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
globals_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
headers_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
internals_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
link_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
location_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
make_temp_test.ts Stricter permissions for Deno.makeTemp* (#4318) 2020-03-11 15:05:42 -04:00
metrics_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
mkdir_test.ts support permission mode in mkdir (#4286) 2020-03-11 16:14:23 -04:00
net_test.ts refactor: uncomment tests broken tests, use skip (#4311) 2020-03-10 16:38:02 +01:00
os_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
performance_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
permissions_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
process_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
read_dir_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
read_file_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
read_link_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
README.md reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
realpath_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
remove_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
rename_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
request_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
resources_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
signal_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
stat_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
symbols_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
symlink_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
test_util.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
testing_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
text_encoding_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
timers_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
tls_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
truncate_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
tty_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
umask_test.ts Add Deno.umask (#4290) 2020-03-10 15:11:27 -04:00
unit_test_runner.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
unit_tests.ts move compiler API tests to integration tests (#4319) 2020-03-11 21:54:53 +01:00
url_search_params_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
url_test.ts refactor: uncomment tests broken tests, use skip (#4311) 2020-03-10 16:38:02 +01:00
utime_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
version_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00
write_file_test.ts reorg: move js runtime tests to cli/js/tests/ (#4250) 2020-03-10 01:06:47 +01:00

Deno runtime tests

Files in this directory are unit tests for Deno runtime.

They are run under compiled Deno binary as opposed to files in cli/js/ which are bundled and snapshotted using deno_typescript crate.

Testing Deno runtime code requires checking API under different runtime permissions (ie. running with different --allow-* flags). To accomplish this all tests exercised are created using unitTest() function.

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

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

unitTest({
    skip: Deno.build.os === "win",
    perms: { read: true, write: true },
  },
  function complexTestFn(): void {
    // test code here
  }
);

unitTest is is a wrapper function that enhances Deno.test() API in several ways:

  • ability to conditionally skip tests using UnitTestOptions.skip
  • ability to register required set of permissions for given test case using UnitTestOptions.perms
  • sanitization of resources - ensuring that tests close all opened resources preventing interference between tests
  • sanitization of async ops - ensuring that tests don't leak async ops by ensuring that all started async ops are done before test finishes

unit_test_runner.ts is main script used to run unit tests.

Runner discoveres required permissions combinations by loading cli/js/tests/unit_tests.ts and going through all registered instances of unitTest. For each discovered permission combination a new Deno process is created with respective --allow-* flags which loads cli/js/tests/unit_tests.ts and executes all unitTest that match runtime permissions.