mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
100 lines
2.5 KiB
Rust
100 lines
2.5 KiB
Rust
|
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
||
|
|
||
|
use deno_lockfile::Lockfile;
|
||
|
use test_util as util;
|
||
|
use util::env_vars_for_jsr_tests;
|
||
|
use util::TestContextBuilder;
|
||
|
|
||
|
itest!(no_module_graph_run {
|
||
|
args: "run jsr/no_module_graph/main.ts",
|
||
|
output: "jsr/no_module_graph/main.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(no_module_graph_info {
|
||
|
args: "info jsr/no_module_graph/main.ts",
|
||
|
output: "jsr/no_module_graph/main_info.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(same_package_multiple_versions {
|
||
|
args: "run --quiet jsr/no_module_graph/multiple.ts",
|
||
|
output: "jsr/no_module_graph/multiple.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(module_graph_run {
|
||
|
args: "run jsr/module_graph/main.ts",
|
||
|
output: "jsr/module_graph/main.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(module_graph_info {
|
||
|
args: "info jsr/module_graph/main.ts",
|
||
|
output: "jsr/module_graph/main_info.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(deps_run {
|
||
|
args: "run jsr/deps/main.ts",
|
||
|
output: "jsr/deps/main.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(deps_info {
|
||
|
args: "info jsr/deps/main.ts",
|
||
|
output: "jsr/deps/main_info.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
});
|
||
|
|
||
|
itest!(version_not_found {
|
||
|
args: "run jsr/version_not_found/main.ts",
|
||
|
output: "jsr/version_not_found/main.out",
|
||
|
envs: env_vars_for_jsr_tests(),
|
||
|
http_server: true,
|
||
|
exit_code: 1,
|
||
|
});
|
||
|
|
||
|
#[test]
|
||
|
fn specifiers_in_lockfile() {
|
||
|
let test_context = TestContextBuilder::for_jsr().use_temp_cwd().build();
|
||
|
let temp_dir = test_context.temp_dir();
|
||
|
|
||
|
temp_dir.write(
|
||
|
"main.ts",
|
||
|
r#"import version from "jsr:@denotest/no_module_graph@0.1/mod.ts";
|
||
|
|
||
|
console.log(version);"#,
|
||
|
);
|
||
|
temp_dir.write("deno.json", "{}"); // to automatically create a lockfile
|
||
|
|
||
|
test_context
|
||
|
.new_command()
|
||
|
.args("run --quiet main.ts")
|
||
|
.run()
|
||
|
.assert_matches_text("0.1.1\n");
|
||
|
|
||
|
let lockfile_path = temp_dir.path().join("deno.lock");
|
||
|
let mut lockfile = Lockfile::new(lockfile_path.to_path_buf(), false).unwrap();
|
||
|
*lockfile
|
||
|
.content
|
||
|
.packages
|
||
|
.specifiers
|
||
|
.get_mut("jsr:@denotest/no_module_graph@0.1")
|
||
|
.unwrap() = "jsr:@denotest/no_module_graph@0.1.0".to_string();
|
||
|
lockfile_path.write(lockfile.as_json_string());
|
||
|
|
||
|
test_context
|
||
|
.new_command()
|
||
|
.args("run --quiet main.ts")
|
||
|
.run()
|
||
|
.assert_matches_text("0.1.0\n");
|
||
|
}
|