@verdaccio/e2e-cli 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/bin/e2e-cli.js +6 -26
  2. package/build/adapters/adapter.d.ts +1 -0
  3. package/build/adapters/bun.d.ts +2 -0
  4. package/build/adapters/deno.d.ts +2 -0
  5. package/build/adapters/index.d.ts +5 -0
  6. package/build/adapters/npm.d.ts +2 -0
  7. package/build/adapters/pnpm.d.ts +2 -0
  8. package/build/adapters/yarn-modern.d.ts +2 -0
  9. package/build/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  10. package/build/cjs/adapters/bun.cjs +64 -0
  11. package/build/cjs/adapters/bun.cjs.map +1 -0
  12. package/build/cjs/adapters/deno.cjs +61 -0
  13. package/build/cjs/adapters/deno.cjs.map +1 -0
  14. package/build/cjs/adapters/index.cjs +10 -0
  15. package/build/cjs/adapters/npm.cjs +85 -0
  16. package/build/cjs/adapters/npm.cjs.map +1 -0
  17. package/build/cjs/adapters/pnpm.cjs +114 -0
  18. package/build/cjs/adapters/pnpm.cjs.map +1 -0
  19. package/build/cjs/adapters/yarn-modern.cjs +207 -0
  20. package/build/cjs/adapters/yarn-modern.cjs.map +1 -0
  21. package/build/cjs/index.cjs +186 -11
  22. package/build/cjs/index.cjs.map +1 -0
  23. package/build/cjs/reporter.cjs +113 -0
  24. package/build/cjs/reporter.cjs.map +1 -0
  25. package/build/cjs/runner.cjs +141 -0
  26. package/build/cjs/runner.cjs.map +1 -0
  27. package/build/cjs/scenarios/index.cjs +25 -0
  28. package/build/cjs/scenarios/index.cjs.map +1 -0
  29. package/build/cjs/scenarios/install-multiple-deps.cjs +119 -0
  30. package/build/cjs/scenarios/install-multiple-deps.cjs.map +1 -0
  31. package/build/cjs/scenarios/metadata.cjs +121 -0
  32. package/build/cjs/scenarios/metadata.cjs.map +1 -0
  33. package/build/cjs/scenarios/minimum-release-age.cjs +111 -0
  34. package/build/cjs/scenarios/minimum-release-age.cjs.map +1 -0
  35. package/build/cjs/scenarios/search.cjs +136 -0
  36. package/build/cjs/scenarios/search.cjs.map +1 -0
  37. package/build/cjs/scenarios/tarballs.cjs +147 -0
  38. package/build/cjs/scenarios/tarballs.cjs.map +1 -0
  39. package/build/cjs/scenarios/uplink-failure.cjs +141 -0
  40. package/build/cjs/scenarios/uplink-failure.cjs.map +1 -0
  41. package/build/cjs/tests/audit.cjs +60 -0
  42. package/build/cjs/tests/audit.cjs.map +1 -0
  43. package/build/cjs/tests/ci.cjs +83 -0
  44. package/build/cjs/tests/ci.cjs.map +1 -0
  45. package/build/cjs/tests/deprecate.cjs +108 -0
  46. package/build/cjs/tests/deprecate.cjs.map +1 -0
  47. package/build/cjs/tests/dist-tags.cjs +43 -0
  48. package/build/cjs/tests/dist-tags.cjs.map +1 -0
  49. package/build/cjs/tests/index.cjs +49 -0
  50. package/build/cjs/tests/index.cjs.map +1 -0
  51. package/build/cjs/tests/info.cjs +31 -0
  52. package/build/cjs/tests/info.cjs.map +1 -0
  53. package/build/cjs/tests/install.cjs +30 -0
  54. package/build/cjs/tests/install.cjs.map +1 -0
  55. package/build/cjs/tests/login.cjs +126 -0
  56. package/build/cjs/tests/login.cjs.map +1 -0
  57. package/build/cjs/tests/ping.cjs +26 -0
  58. package/build/cjs/tests/ping.cjs.map +1 -0
  59. package/build/cjs/tests/publish.cjs +36 -0
  60. package/build/cjs/tests/publish.cjs.map +1 -0
  61. package/build/cjs/tests/search.cjs +23 -0
  62. package/build/cjs/tests/search.cjs.map +1 -0
  63. package/build/cjs/tests/unpublish.cjs +40 -0
  64. package/build/cjs/tests/unpublish.cjs.map +1 -0
  65. package/build/cjs/utils/e2e-config.cjs +59 -0
  66. package/build/cjs/utils/e2e-config.cjs.map +1 -0
  67. package/build/cjs/utils/http-client.cjs +111 -0
  68. package/build/cjs/utils/http-client.cjs.map +1 -0
  69. package/build/cjs/utils/info.cjs +25 -0
  70. package/build/cjs/utils/info.cjs.map +1 -0
  71. package/build/cjs/utils/mock-uplink.cjs +196 -0
  72. package/build/cjs/utils/mock-uplink.cjs.map +1 -0
  73. package/build/cjs/utils/process.cjs +96 -0
  74. package/build/cjs/utils/process.cjs.map +1 -0
  75. package/build/cjs/utils/project.cjs +55 -0
  76. package/build/cjs/utils/project.cjs.map +1 -0
  77. package/build/cjs/utils/publish.cjs +117 -0
  78. package/build/cjs/utils/publish.cjs.map +1 -0
  79. package/build/cjs/utils/registry-client.cjs +56 -0
  80. package/build/cjs/utils/registry-client.cjs.map +1 -0
  81. package/build/esm/adapters/bun.js +62 -0
  82. package/build/esm/adapters/bun.js.map +1 -0
  83. package/build/esm/adapters/deno.js +59 -0
  84. package/build/esm/adapters/deno.js.map +1 -0
  85. package/build/esm/adapters/index.js +6 -0
  86. package/build/esm/adapters/npm.js +83 -0
  87. package/build/esm/adapters/npm.js.map +1 -0
  88. package/build/esm/adapters/pnpm.js +112 -0
  89. package/build/esm/adapters/pnpm.js.map +1 -0
  90. package/build/esm/adapters/yarn-modern.js +204 -0
  91. package/build/esm/adapters/yarn-modern.js.map +1 -0
  92. package/build/esm/index.js +174 -10
  93. package/build/esm/index.js.map +1 -0
  94. package/build/esm/reporter.js +108 -0
  95. package/build/esm/reporter.js.map +1 -0
  96. package/build/esm/runner.js +138 -0
  97. package/build/esm/runner.js.map +1 -0
  98. package/build/esm/scenarios/index.js +19 -0
  99. package/build/esm/scenarios/index.js.map +1 -0
  100. package/build/esm/scenarios/install-multiple-deps.js +117 -0
  101. package/build/esm/scenarios/install-multiple-deps.js.map +1 -0
  102. package/build/esm/scenarios/metadata.js +119 -0
  103. package/build/esm/scenarios/metadata.js.map +1 -0
  104. package/build/esm/scenarios/minimum-release-age.js +108 -0
  105. package/build/esm/scenarios/minimum-release-age.js.map +1 -0
  106. package/build/esm/scenarios/search.js +134 -0
  107. package/build/esm/scenarios/search.js.map +1 -0
  108. package/build/esm/scenarios/tarballs.js +145 -0
  109. package/build/esm/scenarios/tarballs.js.map +1 -0
  110. package/build/esm/scenarios/uplink-failure.js +139 -0
  111. package/build/esm/scenarios/uplink-failure.js.map +1 -0
  112. package/build/esm/tests/audit.js +57 -0
  113. package/build/esm/tests/audit.js.map +1 -0
  114. package/build/esm/tests/ci.js +80 -0
  115. package/build/esm/tests/ci.js.map +1 -0
  116. package/build/esm/tests/deprecate.js +105 -0
  117. package/build/esm/tests/deprecate.js.map +1 -0
  118. package/build/esm/tests/dist-tags.js +41 -0
  119. package/build/esm/tests/dist-tags.js.map +1 -0
  120. package/build/esm/tests/index.js +37 -0
  121. package/build/esm/tests/index.js.map +1 -0
  122. package/build/esm/tests/info.js +29 -0
  123. package/build/esm/tests/info.js.map +1 -0
  124. package/build/esm/tests/install.js +28 -0
  125. package/build/esm/tests/install.js.map +1 -0
  126. package/build/esm/tests/login.js +122 -0
  127. package/build/esm/tests/login.js.map +1 -0
  128. package/build/esm/tests/ping.js +24 -0
  129. package/build/esm/tests/ping.js.map +1 -0
  130. package/build/esm/tests/publish.js +34 -0
  131. package/build/esm/tests/publish.js.map +1 -0
  132. package/build/esm/tests/search.js +21 -0
  133. package/build/esm/tests/search.js.map +1 -0
  134. package/build/esm/tests/unpublish.js +38 -0
  135. package/build/esm/tests/unpublish.js.map +1 -0
  136. package/build/esm/utils/e2e-config.js +58 -0
  137. package/build/esm/utils/e2e-config.js.map +1 -0
  138. package/build/esm/utils/http-client.js +105 -0
  139. package/build/esm/utils/http-client.js.map +1 -0
  140. package/build/esm/utils/info.js +24 -0
  141. package/build/esm/utils/info.js.map +1 -0
  142. package/build/esm/utils/mock-uplink.js +194 -0
  143. package/build/esm/utils/mock-uplink.js.map +1 -0
  144. package/build/esm/utils/process.js +92 -0
  145. package/build/esm/utils/process.js.map +1 -0
  146. package/build/esm/utils/project.js +50 -0
  147. package/build/esm/utils/project.js.map +1 -0
  148. package/build/esm/utils/publish.js +113 -0
  149. package/build/esm/utils/publish.js.map +1 -0
  150. package/build/esm/utils/registry-client.js +53 -0
  151. package/build/esm/utils/registry-client.js.map +1 -0
  152. package/build/index.d.ts +6 -15
  153. package/build/reporter.d.ts +7 -0
  154. package/build/runner.d.ts +13 -0
  155. package/build/scenarios/index.d.ts +9 -0
  156. package/build/scenarios/install-multiple-deps.d.ts +2 -0
  157. package/build/scenarios/metadata.d.ts +2 -0
  158. package/build/scenarios/minimum-release-age.d.ts +11 -0
  159. package/build/scenarios/search.d.ts +2 -0
  160. package/build/scenarios/tarballs.d.ts +2 -0
  161. package/build/scenarios/uplink-failure.d.ts +2 -0
  162. package/build/tests/audit.d.ts +2 -0
  163. package/build/tests/ci.d.ts +2 -0
  164. package/build/tests/deprecate.d.ts +2 -0
  165. package/build/tests/dist-tags.d.ts +2 -0
  166. package/build/tests/index.d.ts +15 -0
  167. package/build/tests/info.d.ts +2 -0
  168. package/build/tests/install.d.ts +2 -0
  169. package/build/tests/login.d.ts +2 -0
  170. package/build/tests/ping.d.ts +2 -0
  171. package/build/tests/publish.d.ts +2 -0
  172. package/build/tests/search.d.ts +2 -0
  173. package/build/tests/unpublish.d.ts +2 -0
  174. package/build/types.d.ts +91 -0
  175. package/build/utils/e2e-config.d.ts +21 -0
  176. package/build/utils/http-client.d.ts +49 -0
  177. package/build/utils/index.d.ts +4 -0
  178. package/build/utils/info.d.ts +14 -0
  179. package/build/utils/mock-uplink.d.ts +47 -0
  180. package/build/utils/process.d.ts +11 -0
  181. package/build/utils/project.d.ts +6 -0
  182. package/build/utils/publish.d.ts +17 -0
  183. package/build/utils/registry-client.d.ts +15 -0
  184. package/package.json +16 -14
  185. package/Cargo.lock +0 -1591
  186. package/Cargo.toml +0 -19
  187. package/build/bin/verdaccio-e2e +0 -0
  188. package/scripts/build-js-package.mjs +0 -25
  189. package/src/e2e_tests/audit.rs +0 -51
  190. package/src/e2e_tests/ci.rs +0 -32
  191. package/src/e2e_tests/deprecate.rs +0 -64
  192. package/src/e2e_tests/dist_tags.rs +0 -56
  193. package/src/e2e_tests/info.rs +0 -43
  194. package/src/e2e_tests/install.rs +0 -27
  195. package/src/e2e_tests/login.rs +0 -64
  196. package/src/e2e_tests/mod.rs +0 -104
  197. package/src/e2e_tests/ping.rs +0 -33
  198. package/src/e2e_tests/publish.rs +0 -68
  199. package/src/e2e_tests/search.rs +0 -14
  200. package/src/e2e_tests/unpublish.rs +0 -37
  201. package/src/main.rs +0 -1411
  202. package/src/scenarios/install_multiple_deps.rs +0 -99
  203. package/src/scenarios/minimum_release_age.rs +0 -45
  204. package/src/scenarios/mod.rs +0 -11
@@ -1,99 +0,0 @@
1
- use super::prelude::*;
2
-
3
- pub(crate) fn scenario_install_multiple_deps(ctx: &mut TestContext<'_>) -> Result<()> {
4
- let id = ctx.run_id.clone();
5
- let mut project_cwd = PathBuf::new();
6
- sub_test(ctx, "publish seed packages", |ctx| {
7
- for i in 1..=5 {
8
- publish_seed(
9
- ctx,
10
- &format!("@verdaccio/seed-{id}-{i}"),
11
- "1.0.0",
12
- BTreeMap::new(),
13
- )?;
14
- }
15
- let shared = format!("@verdaccio/seed-shared-{id}");
16
- publish_seed(ctx, &shared, "1.0.0", BTreeMap::new())?;
17
- let mut deps = BTreeMap::new();
18
- deps.insert(format!("@verdaccio/seed-{id}-1"), "1.0.0".into());
19
- deps.insert(format!("@verdaccio/seed-{id}-2"), "1.0.0".into());
20
- deps.insert(shared, "1.0.0".into());
21
- publish_seed(ctx, &format!("@verdaccio/seed-mid-{id}"), "1.0.0", deps)
22
- })?;
23
- sub_test(ctx, "install all dependencies in consumer project", |ctx| {
24
- let mut deps = BTreeMap::new();
25
- for i in 1..=5 {
26
- deps.insert(format!("@verdaccio/seed-{id}-{i}"), "1.0.0".into());
27
- }
28
- deps.insert(format!("@verdaccio/seed-mid-{id}"), "1.0.0".into());
29
- deps.insert(format!("@verdaccio/seed-shared-{id}"), "1.0.0".into());
30
- project_cwd = prepare_project(
31
- ctx,
32
- &format!("@verdaccio/consumer-{id}"),
33
- "1.0.0",
34
- deps,
35
- BTreeMap::new(),
36
- )?;
37
- let mut args = vec!["install".into()];
38
- args.extend(registry_arg(&ctx.adapter, &ctx.registry_url));
39
- exec_adapter(ctx, Some(&project_cwd), args)?;
40
- Ok(())
41
- })?;
42
- sub_test(ctx, "verify installed packages", |ctx| {
43
- for i in 1..=5 {
44
- let name = format!("@verdaccio/seed-{id}-{i}");
45
- let info = info_pkg(ctx, &project_cwd, &name)?;
46
- assert_eq_json(info.get("name"), name.as_str(), "Expected package name")?;
47
- assert_eq_json(info.get("version"), "1.0.0", "Expected version")?;
48
- }
49
- let mid = format!("@verdaccio/seed-mid-{id}");
50
- let info = info_pkg(ctx, &project_cwd, &mid)?;
51
- assert_eq_json(info.get("name"), mid.as_str(), "Expected mid package")?;
52
- let deps = info
53
- .get("dependencies")
54
- .and_then(Value::as_object)
55
- .ok_or_else(|| anyhow!("Expected dependencies"))?;
56
- assert_eq_json(
57
- deps.get(&format!("@verdaccio/seed-{id}-1")),
58
- "1.0.0",
59
- "Intermediate dependency mismatch",
60
- )?;
61
- assert_eq_json(
62
- deps.get(&format!("@verdaccio/seed-{id}-2")),
63
- "1.0.0",
64
- "Intermediate dependency mismatch",
65
- )?;
66
- assert_eq_json(
67
- deps.get(&format!("@verdaccio/seed-shared-{id}")),
68
- "1.0.0",
69
- "Intermediate dependency mismatch",
70
- )
71
- })?;
72
- sub_test(ctx, "update and re-install", |ctx| {
73
- let leaf = format!("@verdaccio/seed-{id}-1");
74
- let shared = format!("@verdaccio/seed-shared-{id}");
75
- publish_seed(ctx, &leaf, "2.0.0", BTreeMap::new())?;
76
- publish_seed(ctx, &shared, "2.0.0", BTreeMap::new())?;
77
- let mut deps = BTreeMap::new();
78
- deps.insert(leaf.clone(), "^1.0.0".into());
79
- deps.insert(shared, "^1.0.0".into());
80
- let temp = prepare_project(
81
- ctx,
82
- &format!("@verdaccio/consumer-update-{id}"),
83
- "1.0.0",
84
- deps,
85
- BTreeMap::new(),
86
- )?;
87
- let mut args = vec!["install".into()];
88
- args.extend(registry_arg(&ctx.adapter, &ctx.registry_url));
89
- exec_adapter(ctx, Some(&temp), args)?;
90
- let info = info_pkg(ctx, &temp, &leaf)?;
91
- let latest = info
92
- .pointer("/dist-tags/latest")
93
- .or_else(|| info.get("version"))
94
- .and_then(Value::as_str)
95
- .unwrap_or("");
96
- assert_eq_str(latest, "2.0.0")
97
- })?;
98
- Ok(())
99
- }
@@ -1,45 +0,0 @@
1
- use super::prelude::*;
2
-
3
- pub(crate) fn scenario_minimum_release_age(ctx: &mut TestContext<'_>) -> Result<()> {
4
- let id = ctx.run_id.clone();
5
- let excluded_scoped = format!("@verdaccio/release-age-{id}");
6
- let excluded_unscoped = format!("verdaccio-release-age-{id}");
7
- let blocked = format!("e2e-release-age-blocked-{id}");
8
- sub_test(ctx, "publish fresh packages", |ctx| {
9
- publish_seed(ctx, &excluded_scoped, "1.0.0", BTreeMap::new())?;
10
- publish_seed(ctx, &excluded_unscoped, "1.0.0", BTreeMap::new())?;
11
- publish_seed(ctx, &blocked, "1.0.0", BTreeMap::new())
12
- })?;
13
- sub_test(ctx, "excluded packages bypass the cooldown", |ctx| {
14
- let mut deps = BTreeMap::new();
15
- deps.insert(excluded_scoped.clone(), "1.0.0".into());
16
- deps.insert(excluded_unscoped.clone(), "1.0.0".into());
17
- let temp =
18
- prepare_cooldown_consumer(ctx, &format!("@verdaccio/consumer-excluded-{id}"), deps)?;
19
- let mut args = vec!["install".into()];
20
- args.extend(registry_arg(&ctx.adapter, &ctx.registry_url));
21
- exec_adapter(ctx, Some(&temp), args)?;
22
- Ok(())
23
- })?;
24
- sub_test(ctx, "non-excluded fresh package is blocked", |ctx| {
25
- let mut deps = BTreeMap::new();
26
- deps.insert(blocked.clone(), "1.0.0".into());
27
- let temp = prepare_cooldown_consumer(ctx, &format!("e2e-consumer-blocked-{id}"), deps)?;
28
- let mut args = vec!["install".into(), "--no-frozen-lockfile".into()];
29
- args.extend(registry_arg(&ctx.adapter, &ctx.registry_url));
30
- let error = exec_adapter(ctx, Some(&temp), args)
31
- .err()
32
- .map(|err| format!("{err:#}"))
33
- .unwrap_or_default();
34
- assert_true(
35
- !error.is_empty(),
36
- "Expected install of fresh non-excluded package to be blocked",
37
- )?;
38
- assert_true(
39
- error.to_ascii_lowercase().contains("minimumreleaseage")
40
- || error.contains("NO_MATURE_MATCHING_VERSION"),
41
- &format!("Expected minimumReleaseAge cooldown error, got: {error}"),
42
- )
43
- })?;
44
- Ok(())
45
- }
@@ -1,11 +0,0 @@
1
- pub(crate) mod install_multiple_deps;
2
- pub(crate) mod minimum_release_age;
3
-
4
- pub(crate) mod prelude {
5
- pub(crate) use anyhow::{anyhow, Result};
6
- pub(crate) use serde_json::Value;
7
- pub(crate) use std::collections::BTreeMap;
8
- pub(crate) use std::path::PathBuf;
9
-
10
- pub(crate) use crate::*;
11
- }