Files
pnpm/pacquet/crates/cli/tests/init.rs
Khải 7ad33aa65b test: registry-mock (#198)
* test: fix snapshot

* test: filter out index files temporarily

* chore: install registry-mock

* chore(just): add pnpm to test

* feat: create registry-mock crate

* feat(registry-mock): expose get_or_init instead

* refactor: local static

* feat(testing-utils): add_mocked_registry

* refactor: rename new to init

* fix: enable_all

* refactor: use

* feat: add ending /

* fix: must be "localhost"

* feat(registry-mock): use portpicker

* feat(registry-mock): share a single instance

* feat(testing-utils): stop skipping index files

* test(cli/install): use registry-mock

* fix: forgot to save

* fix: forgot increment

* fix: used to wrong syntax

* feat(registry-mock): use advisory-lock

* fix: save anchor before early exit

* fix: drop before delete

* tmp: stored

* refactor: remove unused import

* fix: truncate the file

* feat: use try_lock

* feat(registry-mock): separate lock from anchor

* refactor: use RAII pattern

* fix(registry-mock): user_count

* refactor: rename user_count to ref_count

* fix: kill groups

* fix(registry-mock): ref_count

* chore(git): revert broken fix

This reverts commit 8c0ba7bafd7670dd6580a142ccd7dea5809ed782.

* fix(registry-mock): use sysinfo to kill

* fix(registry-mock): kill algorithm

* feat(registry-mock): recurse regardless

* feat(registry-mock): use reverse recursion instead

* refactor: reduce complexity

* refactor: remove unnecessary mod declarations

* refactor: marks some struct as must_use

* test(cli/add): use registry-mock

* test(pnpm-compatibility): use registry-mock

* refactor: remove unused items

* docs: correction

* chore(license): allow MPL-2.0

* chore(license): allow Unlicense

* fix(registry-mock): failure on few threads

* chore: move pnpm install to just

* ci: cache pnpm

* fix(test): kill leftovers

* fix(test): allow delete to fail

* fix(ci): Install just

* fix(test): don't kill leftovers

This reverts commit ef78d8c54cee691d93fa8e5c169141a0098047f2.

* refactor: move some types to their own mods

* refactor: move port_to_url

* refactor: make listen lazy

* refactor: rename `listen` to `url`

* refactor: use qualified path

* refactor: store port as u16

* feat(registry-mock): PreparedRegistryInfo

* refactor: remove unnecessary async

* refactor: move init code

* refactor: define lib

* feat(registry-mock): bin

* refactor: call just test

* ci: prepare a server

* feat(registry-mock): unique prepared

* docs(registry-mock): cli

* feat(registry-mock/cli): locations of log files

* docs(mocked-registry): important items

* docs(registry-mock): ignore bin

* style: taplo fmt

* docs(readme): instruction to run test

* refactor: move registry-mock to tasks

* ci(codecov): fix

* feat(registry-mock): bump max_retries
2023-11-17 15:26:13 +02:00

50 lines
1.5 KiB
Rust

pub mod _utils;
pub use _utils::*;
use assert_cmd::prelude::*;
use command_extra::CommandExtra;
use pacquet_testing_utils::{bin::CommandTempCwd, fs::get_filenames_in_folder};
use pretty_assertions::assert_eq;
use std::fs;
#[test]
fn should_create_package_json() {
let CommandTempCwd { pacquet, root, workspace, .. } = CommandTempCwd::init();
pacquet.with_arg("init").assert().success();
let manifest_path = workspace.join("package.json");
dbg!(&manifest_path);
eprintln!("Content of package.json");
let package_json_content = fs::read_to_string(&manifest_path).expect("read from package.json");
insta::assert_snapshot!(package_json_content);
eprintln!("Created files");
assert_eq!(get_filenames_in_folder(&workspace), ["package.json"]);
drop(root); // cleanup
}
#[test]
fn should_throw_on_existing_file() {
let CommandTempCwd { pacquet, root, workspace, .. } = CommandTempCwd::init();
let manifest_path = workspace.join("package.json");
dbg!(&manifest_path);
eprintln!("Creating package.json...");
fs::write(&manifest_path, "{}").expect("write to package.json");
eprintln!("Executing pacquet init...");
let output = pacquet.with_arg("init").output().expect("execute pacquet init");
dbg!(&output);
eprintln!("Exit status code");
assert!(!output.status.success());
eprintln!("Stderr");
insta::assert_snapshot!(String::from_utf8_lossy(&output.stderr).trim_end());
drop(root); // cleanup
}