Skip to content

Commit b8b97b3

Browse files
authored
feat(fake-snippets-api): add package_name support for package release creation (#1224)
1 parent 7cac701 commit b8b97b3

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

  • bun-tests/fake-snippets-api/routes/package_releases
  • fake-snippets-api/routes/api/package_releases

bun-tests/fake-snippets-api/routes/package_releases/create.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,31 @@ test("create package release using package_name_with_version", async () => {
5656
expect(releaseResponse.data.package_release.is_latest).toBe(true)
5757
})
5858

59+
test("create package release using package_name and version", async () => {
60+
const { axios } = await getTestServer()
61+
62+
const packageResponse = await axios.post("/api/packages/create", {
63+
name: "testuser/test-package-name-version",
64+
description: "Test Description",
65+
})
66+
expect(packageResponse.status).toBe(200)
67+
const createdPackage = packageResponse.data.package
68+
69+
const releaseResponse = await axios.post("/api/package_releases/create", {
70+
package_name: createdPackage.name,
71+
version: "3.0.0",
72+
})
73+
74+
expect(releaseResponse.status).toBe(200)
75+
expect(releaseResponse.data.ok).toBe(true)
76+
expect(releaseResponse.data.package_release).toBeDefined()
77+
expect(releaseResponse.data.package_release.package_id).toBe(
78+
createdPackage.package_id,
79+
)
80+
expect(releaseResponse.data.package_release.version).toBe("3.0.0")
81+
expect(releaseResponse.data.package_release.is_latest).toBe(true)
82+
})
83+
5984
test("create package release - version already exists", async () => {
6085
const { axios } = await getTestServer()
6186

fake-snippets-api/routes/api/package_releases/create.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export default withRouteSpec({
88
auth: "none",
99
jsonBody: z.object({
1010
package_id: z.string().optional(),
11+
package_name: z.string().optional(),
1112
version: z.string().optional(),
1213
is_latest: z.boolean().optional(),
1314
commit_sha: z.string().optional(),
@@ -20,6 +21,7 @@ export default withRouteSpec({
2021
})(async (req, ctx) => {
2122
let {
2223
package_id,
24+
package_name,
2325
is_latest = true,
2426
version,
2527
commit_sha,
@@ -41,10 +43,21 @@ export default withRouteSpec({
4143
version = parsedVersion
4244
}
4345

46+
if (!package_id && package_name) {
47+
const pkg = ctx.db.packages.find((p) => p.name === package_name)
48+
if (!pkg) {
49+
return ctx.error(404, {
50+
error_code: "package_not_found",
51+
message: `Package not found: ${package_name}`,
52+
})
53+
}
54+
package_id = pkg.package_id
55+
}
56+
4457
if (!package_id || !version) {
4558
return ctx.error(400, {
4659
error_code: "missing_options",
47-
message: "package_id and version are required",
60+
message: "package_id or package_name and version are required",
4861
})
4962
}
5063

0 commit comments

Comments
 (0)