|
1 | 1 | import fs from "fs-extra"; |
2 | | -import path from "path"; |
| 2 | +import path from "node:path"; |
3 | 3 | import outdent from "outdent"; |
4 | 4 |
|
5 | 5 | import read from "./"; |
6 | | -import { silenceLogsInBlock, testdir } from "@changesets/test-utils"; |
| 6 | +import { gitdir, silenceLogsInBlock, testdir } from "@changesets/test-utils"; |
| 7 | +import writeChangeset from "@changesets/write"; |
| 8 | +import { add } from "@changesets/git"; |
7 | 9 |
|
8 | 10 | silenceLogsInBlock(); |
9 | 11 |
|
@@ -216,4 +218,39 @@ Awesome feature, hidden behind a feature flag |
216 | 218 | }, |
217 | 219 | ]); |
218 | 220 | }); |
| 221 | + it("should read a nested changeset relative to git root", async () => { |
| 222 | + const cwd = await gitdir({ |
| 223 | + "library/package.json": JSON.stringify({ |
| 224 | + private: true, |
| 225 | + workspaces: ["packages/*"], |
| 226 | + }), |
| 227 | + "library/packages/pkg-a/package.json": JSON.stringify({ |
| 228 | + name: "pkg-a", |
| 229 | + }), |
| 230 | + "library/.changeset/config.json": JSON.stringify({}), |
| 231 | + }); |
| 232 | + |
| 233 | + const changesetId = await writeChangeset( |
| 234 | + { |
| 235 | + releases: [ |
| 236 | + { |
| 237 | + name: "pkg-a", |
| 238 | + type: "minor", |
| 239 | + }, |
| 240 | + ], |
| 241 | + summary: "Awesome summary", |
| 242 | + }, |
| 243 | + path.join(cwd, "library") |
| 244 | + ); |
| 245 | + await add("library/.changeset", cwd); |
| 246 | + |
| 247 | + const changesets = await read(path.join(cwd, "library"), "main"); |
| 248 | + expect(changesets).toEqual([ |
| 249 | + { |
| 250 | + releases: [{ name: "pkg-a", type: "minor" }], |
| 251 | + summary: "Awesome summary", |
| 252 | + id: changesetId, |
| 253 | + }, |
| 254 | + ]); |
| 255 | + }); |
219 | 256 | }); |
0 commit comments