1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00
denoland-deno/tests/integration/info_tests.rs
Bartek Iwańczuk b1c6142f74
BREAKING: DENO_FUTURE=1 by default, or welcome to Deno 2.0 (#25213)
This commit effectively turns Deno into Deno 2.0.

This is done by forcing `DENO_FUTURE=1` env var, that was available in
the past few months to try Deno 2 changes.

This commit contains several breaking changes scheduled for Deno 2:
- all deprecated JavaScript APIs are not available any more, mostly
`Deno.*` APIs
- `window` global is removed
- FFI, WebGPU and FS APIs are now stable and don't require
`--unstable-*` flags
- import assertions are no longer supported
- "bring your own node modules" is enabled by default

This is the first commit in a series that are scheduled before the Deno
2 release.

Follow up work is tracked in
https://github.com/denoland/deno/issues/25241.

---------

Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
Co-authored-by: Nathan Whitaker <nathan@deno.com>
2024-08-30 13:58:58 -04:00

161 lines
4.2 KiB
Rust

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
use test_util as util;
use test_util::itest;
// use util::env_vars_for_npm_tests;
use util::TestContextBuilder;
#[test]
fn info_with_compiled_source() {
let context = TestContextBuilder::new().use_http_server().build();
let module_path = "http://127.0.0.1:4545/run/048_media_types_jsx.ts";
let output = context
.new_command()
.current_dir(util::testdata_path())
.args_vec(["cache", module_path])
.run();
output.assert_exit_code(0);
output.skip_output_check();
let output = context
.new_command()
.current_dir(util::testdata_path())
.args_vec(["info", module_path])
.split_output()
.run();
// check the output of the test.ts program.
assert!(output.stdout().trim().contains("emit: "));
assert_eq!(output.stderr(), "");
}
#[test]
fn info_lock_write() {
let context = TestContextBuilder::new().use_http_server().build();
context.temp_dir().write("deno.json", "{}");
let module_path = "http://127.0.0.1:4545/run/048_media_types_jsx.ts";
let output = context
.new_command()
.current_dir(context.temp_dir().path())
.args_vec(["info", module_path])
.run();
output.assert_exit_code(0);
output.skip_output_check();
assert!(
context.temp_dir().path().join("deno.lock").exists(),
"missing deno.lock"
);
}
itest!(multiple_imports {
args: "info http://127.0.0.1:4545/run/019_media_types.ts",
output: "info/multiple_imports.out",
http_server: true,
});
itest!(info_flag {
args: "info",
output: "info/041_info_flag.out",
});
itest!(info_flag_location {
args: "info --location https://deno.land",
output: "info/041_info_flag_location.out",
});
itest!(info_json {
args: "info --json",
output: "info/info_json.out",
});
itest!(info_json_location {
args: "info --json --location https://deno.land",
output: "info/info_json_location.out",
});
itest!(info_flag_script_jsx {
args: "info http://127.0.0.1:4545/run/048_media_types_jsx.ts",
output: "info/049_info_flag_script_jsx.out",
http_server: true,
});
itest!(json_file {
args: "info --quiet --json info/json_output/main.ts",
output: "info/json_output/main.out",
exit_code: 0,
});
itest!(info_json_deps_order {
args: "info --json info/076_info_json_deps_order.ts",
output: "info/076_info_json_deps_order.out",
});
itest!(info_missing_module {
args: "info info/error_009_missing_js_module.js",
output: "info/info_missing_module.out",
});
itest!(info_recursive_modules {
args: "info --quiet info/info_recursive_imports_test.ts",
output: "info/info_recursive_imports_test.out",
exit_code: 0,
});
itest!(info_type_import {
args: "info info/info_type_import.ts",
output: "info/info_type_import.out",
});
itest!(_054_info_local_imports {
args: "info --quiet run/005_more_imports.ts",
output: "info/054_info_local_imports.out",
exit_code: 0,
});
// Tests for AssertionError where "data" is unexpectedly null when
// a file contains only triple slash references (#11196)
itest!(data_null_error {
args: "info info/data_null_error/mod.ts",
output: "info/data_null_error/data_null_error.out",
});
itest!(types_header_direct {
args: "info --reload run/type_directives_01.ts",
output: "info/types_header.out",
http_server: true,
});
itest!(with_config_override {
args: "info info/with_config/test.ts --config info/with_config/deno-override.json --import-map info/with_config/import_map.json",
output: "info/with_config/with_config.out",
});
// TODO(2.0): this test should be a spec test and first run `deno install`
// itest!(package_json_basic {
// args: "info --quiet main.ts",
// output: "package_json/basic/main.info.out",
// envs: env_vars_for_npm_tests(),
// http_server: true,
// cwd: Some("package_json/basic"),
// copy_temp_dir: Some("package_json/basic"),
// exit_code: 0,
// });
itest!(info_import_map {
args: "info preact/debug",
output: "info/with_import_map/with_import_map.out",
cwd: Some("info/with_import_map"),
copy_temp_dir: Some("info/with_import_map"),
exit_code: 0,
});
itest!(info_dynamic_imports_tmpl_lit {
args: "info compile/dynamic_imports_tmp_lit/main.js",
output: "compile/dynamic_imports_tmp_lit/main.info.out",
exit_code: 0,
});