// Copyright 2018-2024 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"; 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"); }