@tscircuit/fake-snippets 0.0.109 → 0.0.111
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.
- package/.github/workflows/bun-formatcheck.yml +2 -2
- package/.github/workflows/bun-pver-release.yml +3 -3
- package/.github/workflows/bun-test.yml +1 -1
- package/.github/workflows/bun-typecheck.yml +2 -2
- package/.github/workflows/update-snapshots.yml +1 -1
- package/README.md +4 -0
- package/api/generated-index.js +37 -3
- package/biome.json +2 -1
- package/bun-tests/fake-snippets-api/fixtures/get-test-server.ts +32 -3
- package/bun-tests/fake-snippets-api/fixtures/preload.ts +18 -0
- package/bun-tests/fake-snippets-api/routes/orgs/add_member.test.ts +26 -0
- package/bun-tests/fake-snippets-api/routes/orgs/create.test.ts +37 -0
- package/bun-tests/fake-snippets-api/routes/orgs/get.test.ts +52 -0
- package/bun-tests/fake-snippets-api/routes/orgs/list.test.ts +17 -0
- package/bun-tests/fake-snippets-api/routes/orgs/list_members.test.ts +23 -0
- package/bun-tests/fake-snippets-api/routes/orgs/remove_member.test.ts +81 -0
- package/bun-tests/fake-snippets-api/routes/orgs/update.test.ts +151 -0
- package/bun-tests/fake-snippets-api/routes/package_builds/get.test.ts +1 -1
- package/bun-tests/fake-snippets-api/routes/package_files/create.test.ts +15 -13
- package/bun-tests/fake-snippets-api/routes/package_files/create_or_update.test.ts +26 -24
- package/bun-tests/fake-snippets-api/routes/package_files/delete.test.ts +9 -9
- package/bun-tests/fake-snippets-api/routes/package_files/download.test.ts +4 -4
- package/bun-tests/fake-snippets-api/routes/package_files/get.test.ts +38 -28
- package/bun-tests/fake-snippets-api/routes/package_files/list.test.ts +23 -15
- package/bun-tests/fake-snippets-api/routes/package_releases/create.test.ts +33 -0
- package/bun-tests/fake-snippets-api/routes/package_releases/get.test.ts +4 -4
- package/bun-tests/fake-snippets-api/routes/package_releases/get_image_generation_fields.test.ts +38 -0
- package/bun-tests/fake-snippets-api/routes/packages/create.test.ts +19 -0
- package/bun-tests/fake-snippets-api/routes/packages/fork.test.ts +3 -4
- package/bun-tests/fake-snippets-api/routes/packages/get.test.ts +30 -0
- package/bun-tests/fake-snippets-api/routes/packages/images.test.ts +4 -2
- package/bun-tests/fake-snippets-api/routes/packages/list-1.test.ts +34 -0
- package/bun.lock +361 -453
- package/bunfig.toml +2 -1
- package/dist/bundle.js +1313 -639
- package/dist/index.d.ts +313 -6
- package/dist/index.js +328 -24
- package/dist/schema.d.ts +290 -1
- package/dist/schema.js +54 -1
- package/fake-snippets-api/lib/db/autoload-dev-packages.ts +31 -20
- package/fake-snippets-api/lib/db/db-client.ts +219 -4
- package/fake-snippets-api/lib/db/schema.ts +63 -1
- package/fake-snippets-api/lib/db/seed.ts +100 -0
- package/fake-snippets-api/lib/middleware/with-session-auth.ts +60 -8
- package/fake-snippets-api/lib/package_file/get-package-file-id-from-file-descriptor.ts +2 -2
- package/fake-snippets-api/lib/public-mapping/public-map-org.ts +33 -0
- package/fake-snippets-api/lib/public-mapping/public-map-package-build.ts +10 -0
- package/fake-snippets-api/lib/public-mapping/public-map-package-release.ts +17 -0
- package/fake-snippets-api/routes/api/orgs/add_member.ts +52 -0
- package/fake-snippets-api/routes/api/orgs/create.ts +48 -0
- package/fake-snippets-api/routes/api/orgs/get.ts +39 -0
- package/fake-snippets-api/routes/api/orgs/list.ts +31 -0
- package/fake-snippets-api/routes/api/orgs/list_members.ts +60 -0
- package/fake-snippets-api/routes/api/orgs/remove_member.ts +46 -0
- package/fake-snippets-api/routes/api/orgs/update.ts +118 -0
- package/fake-snippets-api/routes/api/package_files/get.ts +3 -6
- package/fake-snippets-api/routes/api/package_files/list.ts +7 -4
- package/fake-snippets-api/routes/api/packages/create.ts +57 -10
- package/fake-snippets-api/routes/api/packages/get.ts +23 -0
- package/fake-snippets-api/routes/api/packages/images/[owner_github_username]/[unscoped_name]/[view_format].ts +13 -11
- package/fake-snippets-api/routes/api/packages/list.ts +29 -2
- package/fake-snippets-api/routes/api/packages/update_ai_description.ts +37 -0
- package/package.json +25 -19
- package/renovate.json +1 -1
- package/scripts/generate-sitemap.ts +1 -1
- package/src/App.tsx +27 -8
- package/src/ContextProviders.tsx +25 -2
- package/src/components/CircuitJsonImportDialog.tsx +1 -1
- package/src/components/CmdKMenu.tsx +281 -247
- package/src/components/DownloadButtonAndMenu.tsx +17 -5
- package/src/components/FileSidebar.tsx +11 -17
- package/src/components/Footer.tsx +8 -9
- package/src/components/Header.tsx +19 -32
- package/src/components/Header2.tsx +16 -32
- package/src/components/HeaderDropdown.tsx +13 -8
- package/src/components/HeaderLogin.tsx +43 -15
- package/src/components/NotFound.tsx +5 -5
- package/src/components/PackageBreadcrumb.tsx +6 -12
- package/src/components/PackageSearchResults.tsx +1 -1
- package/src/components/PrefetchPageLink.tsx +7 -1
- package/src/components/ProfileRouter.tsx +32 -0
- package/src/components/SearchComponent.tsx +12 -8
- package/src/components/SentryNotFoundReporter.tsx +44 -0
- package/src/components/UserCard.tsx +80 -0
- package/src/components/ViewPackagePage/components/build-status.tsx +1 -1
- package/src/components/ViewPackagePage/components/important-files-view.tsx +105 -34
- package/src/components/ViewPackagePage/components/main-content-header.tsx +10 -6
- package/src/components/ViewPackagePage/components/main-content-view-selector.tsx +1 -1
- package/src/components/ViewPackagePage/components/mobile-sidebar.tsx +54 -19
- package/src/components/ViewPackagePage/components/package-header.tsx +25 -33
- package/src/components/ViewPackagePage/components/preview-image-squares.tsx +11 -18
- package/src/components/ViewPackagePage/components/repo-page-content.tsx +12 -5
- package/src/components/ViewPackagePage/components/sidebar-about-section.tsx +16 -10
- package/src/components/ViewPackagePage/components/sidebar-releases-section.tsx +11 -11
- package/src/components/ViewPackagePage/components/tab-views/pcb-view.tsx +1 -2
- package/src/components/ViewPackagePage/components/tab-views/schematic-view.tsx +2 -1
- package/src/components/dialogs/GitHubRepositorySelector.tsx +56 -49
- package/src/components/dialogs/edit-package-details-dialog.tsx +5 -6
- package/src/components/dialogs/import-component-dialog.tsx +16 -9
- package/src/components/dialogs/import-package-dialog.tsx +3 -2
- package/src/components/dialogs/new-package-save-prompt-dialog.tsx +190 -0
- package/src/components/organization/OrganizationCard.tsx +206 -0
- package/src/components/organization/OrganizationCardSkeleton.tsx +55 -0
- package/src/components/organization/OrganizationHeader.tsx +154 -0
- package/src/components/organization/OrganizationMembers.tsx +146 -0
- package/src/components/package-port/CodeAndPreview.tsx +15 -12
- package/src/components/package-port/CodeEditor.tsx +4 -30
- package/src/components/package-port/CodeEditorHeader.tsx +123 -61
- package/src/components/package-port/EditorNav.tsx +32 -49
- package/src/components/preview/ConnectedPackagesList.tsx +8 -8
- package/src/components/preview/ConnectedRepoOverview.tsx +102 -2
- package/src/components/preview/PackageReleasesDashboard.tsx +23 -11
- package/src/components/ui/tree-view.tsx +6 -3
- package/src/hooks/use-add-org-member-mutation.ts +51 -0
- package/src/hooks/use-create-org-mutation.ts +38 -0
- package/src/hooks/use-create-package-mutation.ts +3 -0
- package/src/hooks/use-current-package-release.ts +4 -3
- package/src/hooks/use-download-zip.ts +2 -2
- package/src/hooks/use-global-store.ts +6 -4
- package/src/hooks/use-hydration.ts +30 -0
- package/src/hooks/use-jlcpcb-component-import.tsx +164 -0
- package/src/hooks/use-list-org-members.ts +27 -0
- package/src/hooks/use-list-user-orgs.ts +25 -0
- package/src/hooks/use-org-by-github-handle.ts +26 -0
- package/src/hooks/use-org.ts +24 -0
- package/src/hooks/use-organization.ts +42 -0
- package/src/hooks/use-package-as-snippet.ts +4 -2
- package/src/hooks/use-package-builds.ts +6 -2
- package/src/hooks/use-package-files.ts +5 -3
- package/src/hooks/use-package-release-by-id-or-version.ts +29 -20
- package/src/hooks/use-package-release-images.ts +105 -0
- package/src/hooks/use-package-release.ts +2 -2
- package/src/hooks/use-package-stars.ts +80 -4
- package/src/hooks/use-preview-images.ts +6 -3
- package/src/hooks/use-remove-org-member-mutation.ts +32 -0
- package/src/hooks/use-update-ai-description-mutation.ts +42 -0
- package/src/hooks/use-update-org-mutation.ts +41 -0
- package/src/hooks/use-warn-user-on-page-change.ts +71 -4
- package/src/hooks/useFileManagement.ts +51 -22
- package/src/hooks/useOptimizedPackageFilesLoader.ts +11 -24
- package/src/hooks/usePackageFilesLoader.ts +2 -2
- package/src/hooks/useUpdatePackageFilesMutation.ts +13 -1
- package/src/lib/download-fns/download-gltf-from-circuit-json.ts +1 -1
- package/src/lib/download-fns/download-kicad-files.ts +22 -11
- package/src/lib/download-fns/download-step.ts +12 -0
- package/src/lib/normalize-svg-for-tile.ts +50 -0
- package/src/lib/posthog.ts +11 -9
- package/src/lib/react-query-api-failure-tracking.ts +148 -0
- package/src/lib/sentry.ts +14 -0
- package/src/lib/templates/blank-circuit-board-template.ts +0 -4
- package/src/lib/ts-lib-cache.ts +122 -7
- package/src/lib/utils/checkIfManualEditsImported.ts +4 -4
- package/src/lib/utils/findTargetFile.ts +45 -10
- package/src/lib/utils/isComponentExported.ts +2 -1
- package/src/main.tsx +2 -1
- package/src/pages/create-organization.tsx +169 -0
- package/src/pages/dashboard.tsx +38 -6
- package/src/pages/datasheet.tsx +1 -1
- package/src/pages/datasheets.tsx +3 -3
- package/src/pages/editor.tsx +4 -6
- package/src/pages/landing.tsx +6 -6
- package/src/pages/latest.tsx +3 -0
- package/src/pages/organization-profile.tsx +199 -0
- package/src/pages/organization-settings.tsx +569 -0
- package/src/pages/package-editor.tsx +21 -21
- package/src/pages/preview-release.tsx +75 -145
- package/src/pages/quickstart.tsx +159 -123
- package/src/pages/release-detail.tsx +119 -31
- package/src/pages/search.tsx +197 -57
- package/src/pages/settings-redirect.tsx +44 -0
- package/src/pages/trending.tsx +29 -20
- package/src/pages/user-profile.tsx +58 -7
- package/src/pages/user-settings.tsx +161 -0
- package/src/pages/view-package.tsx +30 -16
- package/vite.config.ts +9 -0
- package/fake-snippets-api/routes/api/autocomplete/create_autocomplete.ts +0 -133
- package/src/components/JLCPCBImportDialog.tsx +0 -280
- package/src/components/PackageBuildsPage/LogContent.tsx +0 -72
- package/src/components/PackageBuildsPage/PackageBuildDetailsPage.tsx +0 -113
- package/src/components/PackageBuildsPage/build-preview-content.tsx +0 -56
- package/src/components/PackageBuildsPage/collapsible-section.tsx +0 -63
- package/src/components/PackageBuildsPage/package-build-details-panel.tsx +0 -166
- package/src/components/PackageBuildsPage/package-build-header.tsx +0 -79
- package/src/components/PageSearchComponent.tsx +0 -148
- package/src/pages/package-builds.tsx +0 -33
|
@@ -6,7 +6,7 @@ test("create package file with content_text", async () => {
|
|
|
6
6
|
|
|
7
7
|
// First create a package
|
|
8
8
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
9
|
-
name: "
|
|
9
|
+
name: "testuser/package-files-create",
|
|
10
10
|
description: "A test package for creating files",
|
|
11
11
|
})
|
|
12
12
|
expect(packageResponse.status).toBe(200)
|
|
@@ -40,8 +40,8 @@ test("create package file with content_text", async () => {
|
|
|
40
40
|
expect(responseBody.package_file.file_path).toBe(filePath)
|
|
41
41
|
|
|
42
42
|
// Verify the file can be retrieved using the get endpoint
|
|
43
|
-
const getResponse = await axios.
|
|
44
|
-
package_file_id: responseBody.package_file.package_file_id,
|
|
43
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
44
|
+
params: { package_file_id: responseBody.package_file.package_file_id },
|
|
45
45
|
})
|
|
46
46
|
expect(getResponse.status).toBe(200)
|
|
47
47
|
expect(getResponse.data.package_file.file_path).toBe(filePath)
|
|
@@ -53,7 +53,7 @@ test("create package file with content_base64", async () => {
|
|
|
53
53
|
|
|
54
54
|
// First create a package
|
|
55
55
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
56
|
-
name: "
|
|
56
|
+
name: "testuser/package-files-create-base64",
|
|
57
57
|
description: "A test package for creating files with base64",
|
|
58
58
|
})
|
|
59
59
|
expect(packageResponse.status).toBe(200)
|
|
@@ -86,8 +86,8 @@ test("create package file with content_base64", async () => {
|
|
|
86
86
|
// Content is no longer returned from the create endpoint
|
|
87
87
|
|
|
88
88
|
// Verify the file can be retrieved using the get endpoint with package_name_with_version
|
|
89
|
-
const getResponse = await axios.
|
|
90
|
-
package_file_id: responseBody.package_file.package_file_id,
|
|
89
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
90
|
+
params: { package_file_id: responseBody.package_file.package_file_id },
|
|
91
91
|
})
|
|
92
92
|
expect(getResponse.status).toBe(200)
|
|
93
93
|
// content_text is no longer returned by the get endpoint
|
|
@@ -97,7 +97,7 @@ test("create package file using package_name_with_version", async () => {
|
|
|
97
97
|
const { axios } = await getTestServer()
|
|
98
98
|
|
|
99
99
|
// First create a package
|
|
100
|
-
const packageName = "
|
|
100
|
+
const packageName = "testuser/package-files-create-by-name"
|
|
101
101
|
const version = "2.0.0"
|
|
102
102
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
103
103
|
name: packageName,
|
|
@@ -131,8 +131,10 @@ test("create package file using package_name_with_version", async () => {
|
|
|
131
131
|
// Content is no longer returned from the create endpoint
|
|
132
132
|
|
|
133
133
|
// Verify the file can be retrieved using the list endpoint
|
|
134
|
-
const listResponse = await axios.
|
|
135
|
-
|
|
134
|
+
const listResponse = await axios.get("/api/package_files/list", {
|
|
135
|
+
params: {
|
|
136
|
+
package_name_with_version: `${packageName}@${version}`,
|
|
137
|
+
},
|
|
136
138
|
})
|
|
137
139
|
expect(listResponse.status).toBe(200)
|
|
138
140
|
expect(listResponse.data.ok).toBe(true)
|
|
@@ -183,7 +185,7 @@ test("create package file - 400 for missing content", async () => {
|
|
|
183
185
|
|
|
184
186
|
// First create a package and release
|
|
185
187
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
186
|
-
name: "
|
|
188
|
+
name: "testuser/package-files-create-error",
|
|
187
189
|
description: "A test package for error cases",
|
|
188
190
|
})
|
|
189
191
|
const createdPackage = packageResponse.data.package
|
|
@@ -212,7 +214,7 @@ test("create package file - 400 for both content_text and content_base64", async
|
|
|
212
214
|
|
|
213
215
|
// First create a package and release
|
|
214
216
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
215
|
-
name: "
|
|
217
|
+
name: "testuser/package-files-create-error-2",
|
|
216
218
|
description: "Another test package for error cases",
|
|
217
219
|
})
|
|
218
220
|
const createdPackage = packageResponse.data.package
|
|
@@ -242,7 +244,7 @@ test("create release tarball package file", async () => {
|
|
|
242
244
|
|
|
243
245
|
// First create a package
|
|
244
246
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
245
|
-
name: "
|
|
247
|
+
name: "testuser/package-files-create-tarball",
|
|
246
248
|
description: "A test package for creating tarball files",
|
|
247
249
|
})
|
|
248
250
|
expect(packageResponse.status).toBe(200)
|
|
@@ -288,7 +290,7 @@ test("create package file - 400 for release tarball without npm_pack_output", as
|
|
|
288
290
|
|
|
289
291
|
// First create a package and release
|
|
290
292
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
291
|
-
name: "
|
|
293
|
+
name: "testuser/package-files-create-tarball-error",
|
|
292
294
|
description: "Test package for tarball error cases",
|
|
293
295
|
})
|
|
294
296
|
const createdPackage = packageResponse.data.package
|
|
@@ -5,7 +5,7 @@ test("create new package file with content_text", async () => {
|
|
|
5
5
|
const { axios } = await getTestServer()
|
|
6
6
|
|
|
7
7
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
8
|
-
name: "
|
|
8
|
+
name: "testuser/package-files-create-or-update",
|
|
9
9
|
description: "A test package for creating or updating files",
|
|
10
10
|
})
|
|
11
11
|
expect(packageResponse.status).toBe(200)
|
|
@@ -40,8 +40,8 @@ test("create new package file with content_text", async () => {
|
|
|
40
40
|
expect(responseBody.package_file.file_path).toBe(filePath)
|
|
41
41
|
expect(responseBody.package_file.content_text).toBe(fileContent)
|
|
42
42
|
|
|
43
|
-
const getResponse = await axios.
|
|
44
|
-
package_file_id: responseBody.package_file.package_file_id,
|
|
43
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
44
|
+
params: { package_file_id: responseBody.package_file.package_file_id },
|
|
45
45
|
})
|
|
46
46
|
expect(getResponse.status).toBe(200)
|
|
47
47
|
expect(getResponse.data.package_file.file_path).toBe(filePath)
|
|
@@ -51,7 +51,7 @@ test("update existing package file with content_text", async () => {
|
|
|
51
51
|
const { axios } = await getTestServer()
|
|
52
52
|
|
|
53
53
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
54
|
-
name: "
|
|
54
|
+
name: "testuser/package-files-update",
|
|
55
55
|
description: "A test package for updating files",
|
|
56
56
|
})
|
|
57
57
|
expect(packageResponse.status).toBe(200)
|
|
@@ -101,8 +101,8 @@ test("update existing package file with content_text", async () => {
|
|
|
101
101
|
expect(responseBody.package_file.file_path).toBe(filePath)
|
|
102
102
|
expect(responseBody.package_file.content_text).toBe(updatedContent)
|
|
103
103
|
|
|
104
|
-
const getResponse = await axios.
|
|
105
|
-
package_file_id: responseBody.package_file.package_file_id,
|
|
104
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
105
|
+
params: { package_file_id: responseBody.package_file.package_file_id },
|
|
106
106
|
})
|
|
107
107
|
expect(getResponse.status).toBe(200)
|
|
108
108
|
expect(getResponse.data.package_file.file_path).toBe(filePath)
|
|
@@ -112,7 +112,7 @@ test("create package file with content_base64", async () => {
|
|
|
112
112
|
const { axios } = await getTestServer()
|
|
113
113
|
|
|
114
114
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
115
|
-
name: "
|
|
115
|
+
name: "testuser/package-files-create-or-update-base64",
|
|
116
116
|
description: "A test package for creating files with base64",
|
|
117
117
|
})
|
|
118
118
|
expect(packageResponse.status).toBe(200)
|
|
@@ -145,8 +145,8 @@ test("create package file with content_base64", async () => {
|
|
|
145
145
|
expect(responseBody.package_file.file_path).toBe(filePath)
|
|
146
146
|
expect(responseBody.package_file.content_text).toBe(fileContent)
|
|
147
147
|
|
|
148
|
-
const getResponse = await axios.
|
|
149
|
-
package_file_id: responseBody.package_file.package_file_id,
|
|
148
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
149
|
+
params: { package_file_id: responseBody.package_file.package_file_id },
|
|
150
150
|
})
|
|
151
151
|
expect(getResponse.status).toBe(200)
|
|
152
152
|
expect(getResponse.data.package_file.file_path).toBe(filePath)
|
|
@@ -155,7 +155,7 @@ test("create package file with content_base64", async () => {
|
|
|
155
155
|
test("create package file using package_name_with_version", async () => {
|
|
156
156
|
const { axios } = await getTestServer()
|
|
157
157
|
|
|
158
|
-
const packageName = "
|
|
158
|
+
const packageName = "testuser/package-files-create-or-update-by-name"
|
|
159
159
|
const version = "2.0.0"
|
|
160
160
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
161
161
|
name: packageName,
|
|
@@ -189,8 +189,10 @@ test("create package file using package_name_with_version", async () => {
|
|
|
189
189
|
expect(responseBody.package_file.file_path).toBe(filePath)
|
|
190
190
|
expect(responseBody.package_file.content_text).toBe(fileContent)
|
|
191
191
|
|
|
192
|
-
const listResponse = await axios.
|
|
193
|
-
|
|
192
|
+
const listResponse = await axios.get("/api/package_files/list", {
|
|
193
|
+
params: {
|
|
194
|
+
package_name_with_version: `${packageName}@${version}`,
|
|
195
|
+
},
|
|
194
196
|
})
|
|
195
197
|
expect(listResponse.status).toBe(200)
|
|
196
198
|
expect(listResponse.data.ok).toBe(true)
|
|
@@ -205,7 +207,7 @@ test("create release tarball package file", async () => {
|
|
|
205
207
|
const { axios } = await getTestServer()
|
|
206
208
|
|
|
207
209
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
208
|
-
name: "
|
|
210
|
+
name: "testuser/package-files-create-or-update-tarball",
|
|
209
211
|
description: "A test package for creating tarball files",
|
|
210
212
|
})
|
|
211
213
|
expect(packageResponse.status).toBe(200)
|
|
@@ -282,7 +284,7 @@ test("create_or_update - allow empty content_text", async () => {
|
|
|
282
284
|
const { axios } = await getTestServer()
|
|
283
285
|
|
|
284
286
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
285
|
-
name: "
|
|
287
|
+
name: "testuser/package-files-create-or-update-error",
|
|
286
288
|
description: "A test package for error cases",
|
|
287
289
|
})
|
|
288
290
|
const createdPackage = packageResponse.data.package
|
|
@@ -308,7 +310,7 @@ test("create_or_update - 400 for missing content", async () => {
|
|
|
308
310
|
const { axios } = await getTestServer()
|
|
309
311
|
|
|
310
312
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
311
|
-
name: "
|
|
313
|
+
name: "testuser/package-files-create-or-update-error",
|
|
312
314
|
description: "A test package for error cases",
|
|
313
315
|
})
|
|
314
316
|
const createdPackage = packageResponse.data.package
|
|
@@ -335,7 +337,7 @@ test("create_or_update - 400 for both content_text and content_base64", async ()
|
|
|
335
337
|
const { axios } = await getTestServer()
|
|
336
338
|
|
|
337
339
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
338
|
-
name: "
|
|
340
|
+
name: "testuser/package-files-create-or-update-error-2",
|
|
339
341
|
description: "Another test package for error cases",
|
|
340
342
|
})
|
|
341
343
|
const createdPackage = packageResponse.data.package
|
|
@@ -364,7 +366,7 @@ test("create_or_update - 400 for release tarball without npm_pack_output", async
|
|
|
364
366
|
const { axios } = await getTestServer()
|
|
365
367
|
|
|
366
368
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
367
|
-
name: "
|
|
369
|
+
name: "testuser/package-files-create-or-update-tarball-error",
|
|
368
370
|
description: "Test package for tarball error cases",
|
|
369
371
|
})
|
|
370
372
|
const createdPackage = packageResponse.data.package
|
|
@@ -396,7 +398,7 @@ test("create_or_update - 404 for npm_pack_output without is_release_tarball", as
|
|
|
396
398
|
const { axios } = await getTestServer()
|
|
397
399
|
|
|
398
400
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
399
|
-
name: "
|
|
401
|
+
name: "testuser/package-files-create-or-update-tarball-error-2",
|
|
400
402
|
description: "Test package for tarball error cases",
|
|
401
403
|
})
|
|
402
404
|
const createdPackage = packageResponse.data.package
|
|
@@ -428,7 +430,7 @@ test.skip("update package file with content_base64", async () => {
|
|
|
428
430
|
const { axios } = await getTestServer()
|
|
429
431
|
|
|
430
432
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
431
|
-
name: "
|
|
433
|
+
name: "testuser/package-files-update-base64",
|
|
432
434
|
description: "A test package for updating files with base64",
|
|
433
435
|
})
|
|
434
436
|
expect(packageResponse.status).toBe(200)
|
|
@@ -475,8 +477,8 @@ test.skip("update package file with content_base64", async () => {
|
|
|
475
477
|
)
|
|
476
478
|
expect(responseBody.package_file.content_text).toBe(updatedContent)
|
|
477
479
|
|
|
478
|
-
const getResponse = await axios.
|
|
479
|
-
package_file_id: responseBody.package_file.package_file_id,
|
|
480
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
481
|
+
params: { package_file_id: responseBody.package_file.package_file_id },
|
|
480
482
|
})
|
|
481
483
|
expect(getResponse.status).toBe(200)
|
|
482
484
|
expect(getResponse.data.package_file.file_path).toBe(filePath)
|
|
@@ -486,7 +488,7 @@ test("create_or_update detects correct content mimetype", async () => {
|
|
|
486
488
|
const { axios } = await getTestServer()
|
|
487
489
|
|
|
488
490
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
489
|
-
name: "
|
|
491
|
+
name: "testuser/package-files-mimetype",
|
|
490
492
|
description: "A test package for testing mimetypes",
|
|
491
493
|
})
|
|
492
494
|
expect(packageResponse.status).toBe(200)
|
|
@@ -536,7 +538,7 @@ test.skip("create_or_update respects provided content_mimetype", async () => {
|
|
|
536
538
|
const { axios } = await getTestServer()
|
|
537
539
|
|
|
538
540
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
539
|
-
name: "
|
|
541
|
+
name: "testuser/package-files-custom-mimetype",
|
|
540
542
|
description: "A test package for custom mimetypes",
|
|
541
543
|
})
|
|
542
544
|
expect(packageResponse.status).toBe(200)
|
|
@@ -569,7 +571,7 @@ test.skip("create_or_update - 403 for unauthorized user", async () => {
|
|
|
569
571
|
const { axios, db } = await getTestServer()
|
|
570
572
|
|
|
571
573
|
const pkg = {
|
|
572
|
-
name: "
|
|
574
|
+
name: "testuser/package-files-create-or-update-unauthorized",
|
|
573
575
|
owner_org_id: "different-org",
|
|
574
576
|
created_at: "2023-01-01T00:00:00Z",
|
|
575
577
|
updated_at: "2023-01-01T00:00:00Z",
|
|
@@ -5,7 +5,7 @@ test("delete package file using package_release_id", async () => {
|
|
|
5
5
|
const { axios } = await getTestServer()
|
|
6
6
|
|
|
7
7
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
8
|
-
name: "
|
|
8
|
+
name: "testuser/package-files-delete",
|
|
9
9
|
description: "A test package for deleting files",
|
|
10
10
|
})
|
|
11
11
|
expect(packageResponse.status).toBe(200)
|
|
@@ -37,8 +37,8 @@ test("delete package file using package_release_id", async () => {
|
|
|
37
37
|
expect(deleteResponse.data.ok).toBe(true)
|
|
38
38
|
|
|
39
39
|
try {
|
|
40
|
-
await axios.
|
|
41
|
-
package_file_id: createdFile.package_file_id,
|
|
40
|
+
await axios.get("/api/package_files/get", {
|
|
41
|
+
params: { package_file_id: createdFile.package_file_id },
|
|
42
42
|
})
|
|
43
43
|
throw new Error("Expected request to fail")
|
|
44
44
|
} catch (error: any) {
|
|
@@ -50,7 +50,7 @@ test("delete package file using package_release_id", async () => {
|
|
|
50
50
|
test("delete package file using package_name_with_version", async () => {
|
|
51
51
|
const { axios } = await getTestServer()
|
|
52
52
|
|
|
53
|
-
const packageName = "
|
|
53
|
+
const packageName = "testuser/package-files-delete-by-name"
|
|
54
54
|
const version = "2.0.0"
|
|
55
55
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
56
56
|
name: packageName,
|
|
@@ -84,8 +84,8 @@ test("delete package file using package_name_with_version", async () => {
|
|
|
84
84
|
expect(deleteResponse.data.ok).toBe(true)
|
|
85
85
|
|
|
86
86
|
try {
|
|
87
|
-
await axios.
|
|
88
|
-
package_file_id: createdFile.package_file_id,
|
|
87
|
+
await axios.get("/api/package_files/get", {
|
|
88
|
+
params: { package_file_id: createdFile.package_file_id },
|
|
89
89
|
})
|
|
90
90
|
throw new Error("Expected request to fail")
|
|
91
91
|
} catch (error: any) {
|
|
@@ -129,7 +129,7 @@ test("delete package file - 404 for non-existent file", async () => {
|
|
|
129
129
|
const { axios } = await getTestServer()
|
|
130
130
|
|
|
131
131
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
132
|
-
name: "
|
|
132
|
+
name: "testuser/package-files-delete-error",
|
|
133
133
|
description: "A test package for delete error cases",
|
|
134
134
|
})
|
|
135
135
|
expect(packageResponse.status).toBe(200)
|
|
@@ -159,7 +159,7 @@ test.skip("delete package file - 403 for unauthorized user", async () => {
|
|
|
159
159
|
const { axios, db } = await getTestServer()
|
|
160
160
|
|
|
161
161
|
const pkg = {
|
|
162
|
-
name: "
|
|
162
|
+
name: "testuser/package-files-delete-unauthorized",
|
|
163
163
|
owner_org_id: "different-org",
|
|
164
164
|
created_at: "2023-01-01T00:00:00Z",
|
|
165
165
|
updated_at: "2023-01-01T00:00:00Z",
|
|
@@ -220,7 +220,7 @@ test("delete package file - 400 when both package_release_id and package_name_wi
|
|
|
220
220
|
try {
|
|
221
221
|
await axios.post("/api/package_files/delete", {
|
|
222
222
|
package_release_id: "some-id",
|
|
223
|
-
package_name_with_version: "
|
|
223
|
+
package_name_with_version: "testuser/package@1.0.0",
|
|
224
224
|
file_path: "/test.js",
|
|
225
225
|
})
|
|
226
226
|
throw new Error("Expected request to fail")
|
|
@@ -6,7 +6,7 @@ test("download package file by package_file_id", async () => {
|
|
|
6
6
|
|
|
7
7
|
// First create a package
|
|
8
8
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
9
|
-
name: "
|
|
9
|
+
name: "testuser/package-download",
|
|
10
10
|
description: "A test package for downloading files",
|
|
11
11
|
})
|
|
12
12
|
expect(packageResponse.status).toBe(200)
|
|
@@ -54,7 +54,7 @@ test("download package file by package_name_with_version and file_path", async (
|
|
|
54
54
|
const { axios, db } = await getTestServer()
|
|
55
55
|
|
|
56
56
|
// First create a package
|
|
57
|
-
const packageName = "
|
|
57
|
+
const packageName = "testuser/package-download-2"
|
|
58
58
|
const version = "2.0.0"
|
|
59
59
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
60
60
|
name: packageName,
|
|
@@ -142,7 +142,7 @@ test("download package file - 404 for non-existent file path", async () => {
|
|
|
142
142
|
const { axios, db } = await getTestServer()
|
|
143
143
|
|
|
144
144
|
// First create a package
|
|
145
|
-
const packageName = "
|
|
145
|
+
const packageName = "testuser/package-download-3"
|
|
146
146
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
147
147
|
name: packageName,
|
|
148
148
|
description: "Test package for non-existent file path",
|
|
@@ -206,7 +206,7 @@ test("download package file with POST method", async () => {
|
|
|
206
206
|
|
|
207
207
|
// First create a package
|
|
208
208
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
209
|
-
name: "
|
|
209
|
+
name: "testuser/package-download-post",
|
|
210
210
|
description: "Test package for POST download",
|
|
211
211
|
})
|
|
212
212
|
expect(packageResponse.status).toBe(200)
|
|
@@ -2,12 +2,12 @@ import { getTestServer } from "bun-tests/fake-snippets-api/fixtures/get-test-ser
|
|
|
2
2
|
import { expect, test } from "bun:test"
|
|
3
3
|
import { packageFileSchema } from "fake-snippets-api/lib/db/schema"
|
|
4
4
|
|
|
5
|
-
test("
|
|
5
|
+
test("GET /api/package_files/get - should return package file by package_file_id", async () => {
|
|
6
6
|
const { axios, db } = await getTestServer()
|
|
7
7
|
|
|
8
8
|
// First create a package
|
|
9
9
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
10
|
-
name: "
|
|
10
|
+
name: "testuser/package-files",
|
|
11
11
|
description: "A test package for files",
|
|
12
12
|
})
|
|
13
13
|
expect(packageResponse.status).toBe(200)
|
|
@@ -34,8 +34,8 @@ test("POST /api/package_files/get - should return package file by package_file_i
|
|
|
34
34
|
const addedFile = db.addPackageFile(packageFile)
|
|
35
35
|
|
|
36
36
|
// Get the file by package_file_id
|
|
37
|
-
const getResponse = await axios.
|
|
38
|
-
package_file_id: addedFile.package_file_id,
|
|
37
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
38
|
+
params: { package_file_id: addedFile.package_file_id },
|
|
39
39
|
})
|
|
40
40
|
|
|
41
41
|
expect(getResponse.status).toBe(200)
|
|
@@ -44,12 +44,12 @@ test("POST /api/package_files/get - should return package file by package_file_i
|
|
|
44
44
|
expect(responseBody.package_file).toEqual(packageFileSchema.parse(addedFile))
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
test("
|
|
47
|
+
test("GET /api/package_files/get - should return package file by package_release_id and file_path", async () => {
|
|
48
48
|
const { axios, db } = await getTestServer()
|
|
49
49
|
|
|
50
50
|
// First create a package
|
|
51
51
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
52
|
-
name: "
|
|
52
|
+
name: "testuser/package-files-2",
|
|
53
53
|
description: "Another test package for files",
|
|
54
54
|
})
|
|
55
55
|
expect(packageResponse.status).toBe(200)
|
|
@@ -77,9 +77,11 @@ test("POST /api/package_files/get - should return package file by package_releas
|
|
|
77
77
|
db.addPackageFile(packageFile)
|
|
78
78
|
|
|
79
79
|
// Get the file by package_release_id and file_path
|
|
80
|
-
const getResponse = await axios.
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
81
|
+
params: {
|
|
82
|
+
package_release_id: createdRelease.package_release_id,
|
|
83
|
+
file_path: filePath,
|
|
84
|
+
},
|
|
83
85
|
})
|
|
84
86
|
|
|
85
87
|
expect(getResponse.status).toBe(200)
|
|
@@ -91,11 +93,11 @@ test("POST /api/package_files/get - should return package file by package_releas
|
|
|
91
93
|
)
|
|
92
94
|
})
|
|
93
95
|
|
|
94
|
-
test("
|
|
96
|
+
test("GET /api/package_files/get - should return package file by package_name_with_version and file_path", async () => {
|
|
95
97
|
const { axios, db } = await getTestServer()
|
|
96
98
|
|
|
97
99
|
// First create a package
|
|
98
|
-
const packageName = "
|
|
100
|
+
const packageName = "testuser/package-files-3"
|
|
99
101
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
100
102
|
name: packageName,
|
|
101
103
|
description: "Package for name_with_version test",
|
|
@@ -126,9 +128,11 @@ test("POST /api/package_files/get - should return package file by package_name_w
|
|
|
126
128
|
db.addPackageFile(packageFile)
|
|
127
129
|
|
|
128
130
|
// Get the file by package_name_with_version and file_path
|
|
129
|
-
const getResponse = await axios.
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
132
|
+
params: {
|
|
133
|
+
package_name_with_version: `${packageName}@${version}`,
|
|
134
|
+
file_path: filePath,
|
|
135
|
+
},
|
|
132
136
|
})
|
|
133
137
|
|
|
134
138
|
expect(getResponse.status).toBe(200)
|
|
@@ -140,12 +144,14 @@ test("POST /api/package_files/get - should return package file by package_name_w
|
|
|
140
144
|
)
|
|
141
145
|
})
|
|
142
146
|
|
|
143
|
-
test("
|
|
147
|
+
test("GET /api/package_files/get - should return 404 if package file not found", async () => {
|
|
144
148
|
const { axios } = await getTestServer()
|
|
145
149
|
|
|
146
150
|
try {
|
|
147
|
-
await axios.
|
|
148
|
-
|
|
151
|
+
await axios.get("/api/package_files/get", {
|
|
152
|
+
params: {
|
|
153
|
+
package_file_id: "123e4567-e89b-12d3-a456-426614174000", // valid UUID format
|
|
154
|
+
},
|
|
149
155
|
})
|
|
150
156
|
throw new Error("Expected request to fail")
|
|
151
157
|
} catch (error: any) {
|
|
@@ -154,14 +160,16 @@ test("POST /api/package_files/get - should return 404 if package file not found"
|
|
|
154
160
|
}
|
|
155
161
|
})
|
|
156
162
|
|
|
157
|
-
test("
|
|
163
|
+
test("GET /api/package_files/get - should return 404 if package not found with package_name", async () => {
|
|
158
164
|
const { axios } = await getTestServer()
|
|
159
165
|
|
|
160
166
|
try {
|
|
161
|
-
await axios.
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
await axios.get("/api/package_files/get", {
|
|
168
|
+
params: {
|
|
169
|
+
package_name: "non-existent-package",
|
|
170
|
+
version: "1.0.0",
|
|
171
|
+
file_path: "/index.js",
|
|
172
|
+
},
|
|
165
173
|
})
|
|
166
174
|
throw new Error("Expected request to fail")
|
|
167
175
|
} catch (error: any) {
|
|
@@ -170,12 +178,12 @@ test("POST /api/package_files/get - should return 404 if package not found with
|
|
|
170
178
|
}
|
|
171
179
|
})
|
|
172
180
|
|
|
173
|
-
test("
|
|
181
|
+
test("GET /api/package_files/get - should return file using package_id and version", async () => {
|
|
174
182
|
const { axios, db } = await getTestServer()
|
|
175
183
|
|
|
176
184
|
// First create a package
|
|
177
185
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
178
|
-
name: "
|
|
186
|
+
name: "testuser/package-files-4",
|
|
179
187
|
description: "Package for package_id and version test",
|
|
180
188
|
})
|
|
181
189
|
expect(packageResponse.status).toBe(200)
|
|
@@ -204,10 +212,12 @@ test("POST /api/package_files/get - should return file using package_id and vers
|
|
|
204
212
|
db.addPackageFile(packageFile)
|
|
205
213
|
|
|
206
214
|
// Get the file by package_id and version
|
|
207
|
-
const getResponse = await axios.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
215
|
+
const getResponse = await axios.get("/api/package_files/get", {
|
|
216
|
+
params: {
|
|
217
|
+
package_id: createdPackage.package_id,
|
|
218
|
+
version,
|
|
219
|
+
file_path: filePath,
|
|
220
|
+
},
|
|
211
221
|
})
|
|
212
222
|
|
|
213
223
|
expect(getResponse.status).toBe(200)
|
|
@@ -6,7 +6,7 @@ test("list package files by package_release_id", async () => {
|
|
|
6
6
|
|
|
7
7
|
// First create a package
|
|
8
8
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
9
|
-
name: "
|
|
9
|
+
name: "testuser/package-files-list",
|
|
10
10
|
description: "A test package for listing files",
|
|
11
11
|
})
|
|
12
12
|
expect(packageResponse.status).toBe(200)
|
|
@@ -51,8 +51,8 @@ test("list package files by package_release_id", async () => {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
// List files by package_release_id
|
|
54
|
-
const listResponse = await axios.
|
|
55
|
-
package_release_id: createdRelease.package_release_id,
|
|
54
|
+
const listResponse = await axios.get("/api/package_files/list", {
|
|
55
|
+
params: { package_release_id: createdRelease.package_release_id },
|
|
56
56
|
})
|
|
57
57
|
|
|
58
58
|
expect(listResponse.status).toBe(200)
|
|
@@ -74,7 +74,7 @@ test("list package files by package_name with latest version", async () => {
|
|
|
74
74
|
const { axios, db } = await getTestServer()
|
|
75
75
|
|
|
76
76
|
// First create a package
|
|
77
|
-
const packageName = "
|
|
77
|
+
const packageName = "testuser/package-files-list-2"
|
|
78
78
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
79
79
|
name: packageName,
|
|
80
80
|
description: "Another test package for listing files",
|
|
@@ -114,9 +114,11 @@ test("list package files by package_name with latest version", async () => {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
// List files by package_name with use_latest_version
|
|
117
|
-
const listResponse = await axios.
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
const listResponse = await axios.get("/api/package_files/list", {
|
|
118
|
+
params: {
|
|
119
|
+
package_name: packageName.replace(/^@/, ""),
|
|
120
|
+
use_latest_version: true,
|
|
121
|
+
},
|
|
120
122
|
})
|
|
121
123
|
|
|
122
124
|
expect(listResponse.status).toBe(200)
|
|
@@ -129,7 +131,7 @@ test("list package files by package_name_with_version", async () => {
|
|
|
129
131
|
const { axios, db } = await getTestServer()
|
|
130
132
|
|
|
131
133
|
// First create a package
|
|
132
|
-
const packageName = "
|
|
134
|
+
const packageName = "testuser/package-files-list-3"
|
|
133
135
|
const version = "2.0.0"
|
|
134
136
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
135
137
|
name: packageName,
|
|
@@ -163,8 +165,10 @@ test("list package files by package_name_with_version", async () => {
|
|
|
163
165
|
}
|
|
164
166
|
|
|
165
167
|
// List files by package_name_with_version
|
|
166
|
-
const listResponse = await axios.
|
|
167
|
-
|
|
168
|
+
const listResponse = await axios.get("/api/package_files/list", {
|
|
169
|
+
params: {
|
|
170
|
+
package_name_with_version: `${packageName}@${version}`,
|
|
171
|
+
},
|
|
168
172
|
})
|
|
169
173
|
|
|
170
174
|
expect(listResponse.status).toBe(200)
|
|
@@ -178,8 +182,10 @@ test("list package files - 404 for non-existent package release", async () => {
|
|
|
178
182
|
const { axios } = await getTestServer()
|
|
179
183
|
|
|
180
184
|
try {
|
|
181
|
-
await axios.
|
|
182
|
-
|
|
185
|
+
await axios.get("/api/package_files/list", {
|
|
186
|
+
params: {
|
|
187
|
+
package_release_id: "00000000-0000-0000-0000-000000000000",
|
|
188
|
+
},
|
|
183
189
|
})
|
|
184
190
|
throw new Error("Expected request to fail")
|
|
185
191
|
} catch (error: any) {
|
|
@@ -192,9 +198,11 @@ test("list package files - 404 for non-existent package", async () => {
|
|
|
192
198
|
const { axios } = await getTestServer()
|
|
193
199
|
|
|
194
200
|
try {
|
|
195
|
-
await axios.
|
|
196
|
-
|
|
197
|
-
|
|
201
|
+
await axios.get("/api/package_files/list", {
|
|
202
|
+
params: {
|
|
203
|
+
package_name: "non-existent-package",
|
|
204
|
+
use_latest_version: true,
|
|
205
|
+
},
|
|
198
206
|
})
|
|
199
207
|
throw new Error("Expected request to fail")
|
|
200
208
|
} catch (error: any) {
|
|
@@ -136,3 +136,36 @@ test("create package release - package not found", async () => {
|
|
|
136
136
|
)
|
|
137
137
|
}
|
|
138
138
|
})
|
|
139
|
+
|
|
140
|
+
// test
|
|
141
|
+
test("create package release under org", async () => {
|
|
142
|
+
const { axios } = await getTestServer()
|
|
143
|
+
|
|
144
|
+
const orgResponse = await axios.post("/api/orgs/create", {
|
|
145
|
+
name: "testorg",
|
|
146
|
+
})
|
|
147
|
+
expect(orgResponse.status).toBe(200)
|
|
148
|
+
|
|
149
|
+
const packageResponse = await axios.post("/api/packages/create", {
|
|
150
|
+
name: "testorg/test-package",
|
|
151
|
+
description: "Test Description",
|
|
152
|
+
})
|
|
153
|
+
expect(packageResponse.status).toBe(200)
|
|
154
|
+
const createdPackage = packageResponse.data.package
|
|
155
|
+
|
|
156
|
+
const releaseResponse = await axios.post("/api/package_releases/create", {
|
|
157
|
+
package_id: createdPackage.package_id,
|
|
158
|
+
version: "1.0.0",
|
|
159
|
+
is_latest: true,
|
|
160
|
+
})
|
|
161
|
+
expect(releaseResponse.status).toBe(200)
|
|
162
|
+
expect(releaseResponse.data.ok).toBe(true)
|
|
163
|
+
expect(releaseResponse.data.package_release).toBeDefined()
|
|
164
|
+
expect(releaseResponse.data.package_release.package_id).toBe(
|
|
165
|
+
createdPackage.package_id,
|
|
166
|
+
)
|
|
167
|
+
expect(releaseResponse.data.package_release.version).toBe("1.0.0")
|
|
168
|
+
expect(releaseResponse.data.package_release.is_latest).toBe(true)
|
|
169
|
+
expect(releaseResponse.data.package_release.ai_review_requested).toBe(false)
|
|
170
|
+
expect(releaseResponse.data.package_release.ai_review_text).toBeFalsy()
|
|
171
|
+
})
|