mirror of
https://github.com/denoland/deno.git
synced 2024-12-29 02:29:06 -05:00
0709c051f8
Adds an experimental unstable built-in package manager to Deno, but it is currently not usable because the registry infrastructure hasn't been setup and it points to a non-existent url by default. The default registry url can be configured via the `DENO_REGISTRY_URL` environment variable.
99 lines
2.5 KiB
Rust
99 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");
|
|
}
|