intershell 0.6.1 → 0.6.3

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 (64) hide show
  1. package/README.md +2 -0
  2. package/dist/compose/compose.d.ts.map +1 -1
  3. package/dist/compose/compose.js +2 -2
  4. package/dist/compose/compose.js.map +1 -1
  5. package/dist/compose/compose.test.js +33 -32
  6. package/dist/compose/compose.test.js.map +1 -1
  7. package/dist/intershell-config/intershell-config.d.ts.map +1 -1
  8. package/dist/intershell-config/intershell-config.default.js +1 -1
  9. package/dist/intershell-config/intershell-config.default.js.map +1 -1
  10. package/dist/intershell-config/intershell-config.js +5 -21
  11. package/dist/intershell-config/intershell-config.js.map +1 -1
  12. package/dist/package/index.d.ts +1 -0
  13. package/dist/package/index.d.ts.map +1 -1
  14. package/dist/package/index.js +1 -0
  15. package/dist/package/index.js.map +1 -1
  16. package/dist/package/package-test-mock.d.ts +2 -0
  17. package/dist/package/package-test-mock.d.ts.map +1 -0
  18. package/dist/package/package-test-mock.js +28 -0
  19. package/dist/package/package-test-mock.js.map +1 -0
  20. package/dist/package/package.d.ts +1 -1
  21. package/dist/package/package.d.ts.map +1 -1
  22. package/dist/package/package.js +14 -49
  23. package/dist/package/package.js.map +1 -1
  24. package/dist/package/package.test.js +93 -56
  25. package/dist/package/package.test.js.map +1 -1
  26. package/dist/package/package.types.d.ts +3 -1
  27. package/dist/package/package.types.d.ts.map +1 -1
  28. package/dist/package/workspace-discovery.d.ts +18 -0
  29. package/dist/package/workspace-discovery.d.ts.map +1 -0
  30. package/dist/package/workspace-discovery.js +166 -0
  31. package/dist/package/workspace-discovery.js.map +1 -0
  32. package/dist/package/workspace-discovery.test.d.ts +2 -0
  33. package/dist/package/workspace-discovery.test.d.ts.map +1 -0
  34. package/dist/package/workspace-discovery.test.js +27 -0
  35. package/dist/package/workspace-discovery.test.js.map +1 -0
  36. package/dist/package-commits/dependency-analyzer.d.ts +1 -3
  37. package/dist/package-commits/dependency-analyzer.d.ts.map +1 -1
  38. package/dist/package-commits/dependency-analyzer.js +21 -35
  39. package/dist/package-commits/dependency-analyzer.js.map +1 -1
  40. package/dist/package-commits/package-commits.test.js +12 -7
  41. package/dist/package-commits/package-commits.test.js.map +1 -1
  42. package/dist/package-tags/package-tags.js +1 -1
  43. package/dist/package-tags/package-tags.js.map +1 -1
  44. package/dist/package-tags/package-tags.test.js +24 -20
  45. package/dist/package-tags/package-tags.test.js.map +1 -1
  46. package/dist/package-version/package-version.test.js +43 -34
  47. package/dist/package-version/package-version.test.js.map +1 -1
  48. package/package.json +2 -2
  49. package/src/compose/compose.test.ts +36 -35
  50. package/src/compose/compose.ts +2 -4
  51. package/src/intershell-config/intershell-config.default.ts +1 -1
  52. package/src/intershell-config/intershell-config.ts +8 -23
  53. package/src/package/index.ts +1 -0
  54. package/src/package/package-test-mock.ts +33 -0
  55. package/src/package/package.test.ts +93 -56
  56. package/src/package/package.ts +27 -55
  57. package/src/package/package.types.ts +1 -1
  58. package/src/package/workspace-discovery.test.ts +51 -0
  59. package/src/package/workspace-discovery.ts +219 -0
  60. package/src/package-commits/dependency-analyzer.ts +61 -40
  61. package/src/package-commits/package-commits.test.ts +15 -7
  62. package/src/package-tags/package-tags.test.ts +27 -20
  63. package/src/package-tags/package-tags.ts +1 -1
  64. package/src/package-version/package-version.test.ts +48 -35
@@ -1,11 +1,14 @@
1
- import { describe, expect, test } from "bun:test";
1
+ import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
2
2
  import type { ParsedCommitData } from "../commit";
3
3
  import { EntityPackage } from "../package";
4
+ import { installPackagesShellTestMock } from "../package/package-test-mock";
4
5
  import { EntityPackageCommits } from "../package-commits";
5
6
  import { EntityPackageTags } from "../package-tags";
6
7
  import { EntityPackageVersion } from "./package-version";
7
8
 
8
- // Helper function to create EntityPackageVersion instances
9
+ let restorePackagesShellMock: () => void;
10
+ let originalGetLatestPackageVersionInHistory: typeof EntityPackageTags.prototype.getLatestPackageVersionInHistory;
11
+
9
12
  function createEntityPackageVersion(packageName: string): EntityPackageVersion {
10
13
  const packageInstance = new EntityPackage(packageName);
11
14
  const commitPackage = new EntityPackageCommits(packageInstance);
@@ -14,18 +17,38 @@ function createEntityPackageVersion(packageName: string): EntityPackageVersion {
14
17
  }
15
18
 
16
19
  describe("EntityPackageVersion", () => {
20
+ beforeEach(() => {
21
+ restorePackagesShellMock = installPackagesShellTestMock();
22
+
23
+ originalGetLatestPackageVersionInHistory =
24
+ EntityPackageTags.prototype.getLatestPackageVersionInHistory;
25
+ EntityPackageTags.prototype.getLatestPackageVersionInHistory = mock(function (
26
+ this: EntityPackageTags,
27
+ ) {
28
+ const packageName = (this as unknown as { package: EntityPackage }).package.getName();
29
+ if (packageName === "root") return Promise.resolve("1.0.0");
30
+ return Promise.resolve("0.1.0");
31
+ });
32
+ });
33
+
34
+ afterEach(() => {
35
+ restorePackagesShellMock();
36
+ EntityPackageTags.prototype.getLatestPackageVersionInHistory =
37
+ originalGetLatestPackageVersionInHistory;
38
+ });
39
+
17
40
  test("should create instance", () => {
18
- const EntityPackageVersion = createEntityPackageVersion("api");
19
- expect(EntityPackageVersion).toBeDefined();
41
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
42
+ expect(entityPackageVersion).toBeDefined();
20
43
  });
21
44
 
22
45
  test("should create root instance", () => {
23
- const EntityPackageVersion = createEntityPackageVersion("root");
24
- expect(EntityPackageVersion).toBeDefined();
46
+ const entityPackageVersion = createEntityPackageVersion("root");
47
+ expect(entityPackageVersion).toBeDefined();
25
48
  });
26
49
 
27
50
  test("should calculate bump type for regular package", async () => {
28
- const EntityPackageVersion = createEntityPackageVersion("api");
51
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
29
52
 
30
53
  const commits: ParsedCommitData[] = [
31
54
  {
@@ -34,12 +57,12 @@ describe("EntityPackageVersion", () => {
34
57
  } as ParsedCommitData,
35
58
  ];
36
59
 
37
- const versionData = await EntityPackageVersion.calculateVersionData(commits);
60
+ const versionData = await entityPackageVersion.calculateVersionData(commits);
38
61
  expect(versionData.bumpType).toBe("minor");
39
62
  });
40
63
 
41
64
  test("should calculate bump type for breaking changes", async () => {
42
- const EntityPackageVersion = createEntityPackageVersion("api");
65
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
43
66
 
44
67
  const commits: ParsedCommitData[] = [
45
68
  {
@@ -48,12 +71,12 @@ describe("EntityPackageVersion", () => {
48
71
  } as ParsedCommitData,
49
72
  ];
50
73
 
51
- const versionData = await EntityPackageVersion.calculateVersionData(commits);
74
+ const versionData = await entityPackageVersion.calculateVersionData(commits);
52
75
  expect(versionData.bumpType).toBe("major");
53
76
  });
54
77
 
55
78
  test("should calculate bump type for patch changes", async () => {
56
- const EntityPackageVersion = createEntityPackageVersion("api");
79
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
57
80
 
58
81
  const commits: ParsedCommitData[] = [
59
82
  {
@@ -62,22 +85,21 @@ describe("EntityPackageVersion", () => {
62
85
  } as ParsedCommitData,
63
86
  ];
64
87
 
65
- const versionData = await EntityPackageVersion.calculateVersionData(commits);
88
+ const versionData = await entityPackageVersion.calculateVersionData(commits);
66
89
  expect(versionData.bumpType).toBe("patch");
67
90
  });
68
91
 
69
92
  test("should return none for empty commits", async () => {
70
- const EntityPackageVersion = createEntityPackageVersion("api");
71
- const versionData = await EntityPackageVersion.calculateVersionData([]);
93
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
94
+ const versionData = await entityPackageVersion.calculateVersionData([]);
72
95
  expect(versionData.bumpType).toBe("none");
73
96
  });
74
97
 
75
98
  test("should calculate version data for first version", async () => {
76
- const EntityPackageVersion = createEntityPackageVersion("api");
99
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
77
100
 
78
- const versionData = await EntityPackageVersion.calculateVersionData([]);
101
+ const versionData = await entityPackageVersion.calculateVersionData([]);
79
102
 
80
- // The api package already has version 0.1.0, so no bump needed
81
103
  expect(versionData.shouldBump).toBe(false);
82
104
  expect(versionData.targetVersion).toBe("0.1.0");
83
105
  expect(versionData.bumpType).toBe("none");
@@ -85,24 +107,18 @@ describe("EntityPackageVersion", () => {
85
107
  });
86
108
 
87
109
  test("should not bump when no commits", async () => {
88
- const EntityPackageVersion = createEntityPackageVersion("api");
110
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
89
111
 
90
- const versionData = await EntityPackageVersion.calculateVersionData([]);
112
+ const versionData = await entityPackageVersion.calculateVersionData([]);
91
113
 
92
114
  expect(versionData.shouldBump).toBe(false);
93
- expect(versionData.targetVersion).toBe("0.1.0"); // api package version
115
+ expect(versionData.targetVersion).toBe("0.1.0");
94
116
  expect(versionData.bumpType).toBe("none");
95
117
  expect(versionData.reason).toBe("No commits in range");
96
118
  });
97
119
 
98
- test("should throw error when version on disk is higher", async () => {
99
- // This test needs to be updated since the method now gets version from package.json internally
100
- // We'll need to mock the package version or create a different test
101
- expect(true).toBe(true); // Placeholder - this test needs to be redesigned
102
- });
103
-
104
120
  test("should calculate bump type for root package", async () => {
105
- const EntityPackageVersion = createEntityPackageVersion("root");
121
+ const entityPackageVersion = createEntityPackageVersion("root");
106
122
 
107
123
  const commits: ParsedCommitData[] = [
108
124
  {
@@ -111,12 +127,12 @@ describe("EntityPackageVersion", () => {
111
127
  } as ParsedCommitData,
112
128
  ];
113
129
 
114
- const versionData = await EntityPackageVersion.calculateVersionData(commits);
130
+ const versionData = await entityPackageVersion.calculateVersionData(commits);
115
131
  expect(versionData.bumpType).toBe("minor");
116
132
  });
117
133
 
118
134
  test("should use override bump type when provided", async () => {
119
- const EntityPackageVersion = createEntityPackageVersion("api");
135
+ const entityPackageVersion = createEntityPackageVersion("@apps/api");
120
136
 
121
137
  const commits: ParsedCommitData[] = [
122
138
  {
@@ -125,16 +141,13 @@ describe("EntityPackageVersion", () => {
125
141
  } as ParsedCommitData,
126
142
  ];
127
143
 
128
- // Test with major override (should override the automatic minor bump)
129
- const versionDataMajor = await EntityPackageVersion.calculateVersionData(commits, "major");
144
+ const versionDataMajor = await entityPackageVersion.calculateVersionData(commits, "major");
130
145
  expect(versionDataMajor.bumpType).toBe("major");
131
146
 
132
- // Test with patch override (should override the automatic minor bump)
133
- const versionDataPatch = await EntityPackageVersion.calculateVersionData(commits, "patch");
147
+ const versionDataPatch = await entityPackageVersion.calculateVersionData(commits, "patch");
134
148
  expect(versionDataPatch.bumpType).toBe("patch");
135
149
 
136
- // Test with none override (should prevent version bump)
137
- const versionDataNone = await EntityPackageVersion.calculateVersionData(commits, "none");
150
+ const versionDataNone = await entityPackageVersion.calculateVersionData(commits, "none");
138
151
  expect(versionDataNone.bumpType).toBe("none");
139
152
  expect(versionDataNone.shouldBump).toBe(false);
140
153
  });