@tscircuit/fake-snippets 0.0.108 → 0.0.110
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 +31 -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 +99 -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 +389 -450
- package/bunfig.toml +2 -1
- package/dist/bundle.js +1255 -625
- package/dist/index.d.ts +296 -4
- package/dist/index.js +325 -24
- package/dist/schema.d.ts +282 -1
- package/dist/schema.js +54 -2
- package/fake-snippets-api/lib/db/autoload-dev-packages.ts +31 -20
- package/fake-snippets-api/lib/db/db-client.ts +214 -3
- package/fake-snippets-api/lib/db/schema.ts +62 -0
- package/fake-snippets-api/lib/db/seed.ts +100 -0
- package/fake-snippets-api/lib/middleware/with-session-auth.ts +1 -1
- 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 +32 -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 +46 -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 +67 -0
- package/fake-snippets-api/routes/api/orgs/remove_member.ts +46 -0
- package/fake-snippets-api/routes/api/orgs/update.ts +93 -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 +54 -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 +27 -24
- package/renovate.json +1 -1
- package/scripts/generate-sitemap.ts +1 -1
- package/src/App.tsx +29 -10
- 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 +133 -36
- package/src/components/FileSidebar.tsx +41 -50
- package/src/components/Footer.tsx +8 -10
- 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 +44 -16
- package/src/components/HiddenFilesDropdown.tsx +0 -2
- package/src/components/NotFound.tsx +5 -5
- package/src/components/PackageBreadcrumb.tsx +6 -12
- package/src/components/PackageCard.tsx +0 -1
- 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/UserCard.tsx +80 -0
- package/src/components/ViewPackagePage/components/ShikiCodeViewer.tsx +20 -11
- package/src/components/ViewPackagePage/components/build-status.tsx +1 -1
- package/src/components/ViewPackagePage/components/important-files-view.tsx +174 -87
- package/src/components/ViewPackagePage/components/main-content-header.tsx +8 -4
- package/src/components/ViewPackagePage/components/main-content-view-selector.tsx +1 -2
- package/src/components/ViewPackagePage/components/mobile-sidebar.tsx +54 -20
- package/src/components/ViewPackagePage/components/package-header.tsx +26 -37
- package/src/components/ViewPackagePage/components/preview-image-squares.tsx +11 -19
- package/src/components/ViewPackagePage/components/repo-page-content.tsx +33 -25
- 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/sidebar.tsx +0 -2
- package/src/components/ViewPackagePage/components/tab-views/files-view.tsx +18 -17
- 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/ViewPackagePage/components/theme-toggle.tsx +0 -2
- package/src/components/ViewPackagePage/hooks/use-toast.tsx +0 -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 +204 -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 +32 -46
- package/src/components/package-port/CodeEditor.tsx +28 -31
- package/src/components/package-port/CodeEditorHeader.tsx +128 -63
- 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 +53 -36
- 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-id.ts +5 -30
- package/src/hooks/use-current-package-info.ts +29 -5
- 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-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 +183 -35
- package/src/hooks/useOptimizedPackageFilesLoader.ts +136 -0
- package/src/hooks/usePackageFilesLoader.ts +2 -2
- package/src/hooks/useUpdatePackageFilesMutation.ts +15 -1
- package/src/lib/download-fns/download-circuit-png.ts +11 -3
- package/src/lib/download-fns/download-gltf-from-circuit-json.ts +44 -0
- package/src/lib/download-fns/download-kicad-files.ts +12 -11
- 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 +10 -0
- package/src/main.tsx +2 -1
- package/src/pages/authorize.tsx +0 -2
- package/src/pages/create-organization.tsx +168 -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 -7
- package/src/pages/latest.tsx +3 -0
- package/src/pages/organization-profile.tsx +199 -0
- package/src/pages/organization-settings.tsx +566 -0
- package/src/pages/package-editor.tsx +21 -21
- package/src/pages/preview-release.tsx +76 -136
- package/src/pages/quickstart.tsx +159 -123
- package/src/pages/release-detail.tsx +119 -31
- package/src/pages/search.tsx +192 -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/view-package.tsx +21 -26
- package/vite.config.ts +9 -0
- package/fake-snippets-api/routes/api/autocomplete/create_autocomplete.ts +0 -133
- package/src/components/Footer2.tsx +0 -100
- package/src/components/JLCPCBImportDialog.tsx +0 -280
- package/src/components/PackageBuildsPage/LogContent.tsx +0 -72
- package/src/components/PackageBuildsPage/PackageBuildDetailsPage.tsx +0 -115
- package/src/components/PackageBuildsPage/build-preview-content.tsx +0 -27
- 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/components/ShippingInformationForm.tsx +0 -423
- package/src/components/StaticViewSnippetHeader.tsx +0 -70
- package/src/components/ViewPackagePage/components/file-explorer.tsx +0 -67
- package/src/components/ViewPackagePage/components/readme-view.tsx +0 -58
- package/src/components/ViewPackagePage/components/repo-header-button.tsx +0 -36
- package/src/components/ViewPackagePage/components/repo-header.tsx +0 -4
- package/src/components/ViewPackagePage/components/sidebar-contributors-section.tsx +0 -31
- package/src/components/ViewSnippetHeader.tsx +0 -181
- package/src/components/ui/input-otp.tsx +0 -69
- package/src/pages/package-builds.tsx +0 -33
- package/src/pages/settings.tsx +0 -25
|
@@ -7,7 +7,7 @@ test("POST /api/package_releases/get - should return package release by package_
|
|
|
7
7
|
|
|
8
8
|
// First create a package with valid name format
|
|
9
9
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
10
|
-
name: "
|
|
10
|
+
name: "testuser/package-1",
|
|
11
11
|
description: "A test package",
|
|
12
12
|
})
|
|
13
13
|
expect(packageResponse.status).toBe(200)
|
|
@@ -55,7 +55,7 @@ test("POST /api/package_releases/get - should find release by package_name_with_
|
|
|
55
55
|
|
|
56
56
|
// First create a package with valid name format
|
|
57
57
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
58
|
-
name: "
|
|
58
|
+
name: "testuser/package-2",
|
|
59
59
|
description: "Another test package",
|
|
60
60
|
})
|
|
61
61
|
expect(packageResponse.status).toBe(200)
|
|
@@ -92,7 +92,7 @@ test("POST /api/package_releases/get - should return circuit_json_build_error if
|
|
|
92
92
|
|
|
93
93
|
// First create a package with valid name format
|
|
94
94
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
95
|
-
name: "
|
|
95
|
+
name: "testuser/package-3",
|
|
96
96
|
description: "Another test package",
|
|
97
97
|
})
|
|
98
98
|
expect(packageResponse.status).toBe(200)
|
|
@@ -122,7 +122,7 @@ test("POST /api/package_releases/get?include_logs=true - should return include_l
|
|
|
122
122
|
|
|
123
123
|
// First create a package with valid name format
|
|
124
124
|
const packageResponse = await axios.post("/api/packages/create", {
|
|
125
|
-
name: "
|
|
125
|
+
name: "testuser/package-4",
|
|
126
126
|
description: "Another test package",
|
|
127
127
|
})
|
|
128
128
|
expect(packageResponse.status).toBe(200)
|
package/bun-tests/fake-snippets-api/routes/package_releases/get_image_generation_fields.test.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { expect, test } from "bun:test"
|
|
2
|
+
import { getTestServer } from "bun-tests/fake-snippets-api/fixtures/get-test-server"
|
|
3
|
+
|
|
4
|
+
// ensure image generation fields are returned by /api/package_releases/get
|
|
5
|
+
|
|
6
|
+
test("POST /api/package_releases/get includes image generation fields", async () => {
|
|
7
|
+
const { axios } = await getTestServer()
|
|
8
|
+
|
|
9
|
+
const packageRes = await axios.post("/api/packages/create", {
|
|
10
|
+
name: "testuser/image-fields",
|
|
11
|
+
description: "test package",
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
const { package_id } = packageRes.data.package
|
|
15
|
+
|
|
16
|
+
const releaseRes = await axios.post("/api/package_releases/create", {
|
|
17
|
+
package_id,
|
|
18
|
+
version: "0.0.1",
|
|
19
|
+
is_latest: true,
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const { package_release } = releaseRes.data
|
|
23
|
+
|
|
24
|
+
const res = await axios.post("/api/package_releases/get", {
|
|
25
|
+
package_release_id: package_release.package_release_id,
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
const pr = res.data.package_release
|
|
29
|
+
|
|
30
|
+
expect(pr.image_generation_in_progress).toBe(false)
|
|
31
|
+
expect(pr.image_generation_started_at).toBeNull()
|
|
32
|
+
expect(pr.image_generation_completed_at).toBeNull()
|
|
33
|
+
expect(pr.image_generation_logs).toBeNull()
|
|
34
|
+
expect(pr.image_generation_is_stale).toBe(false)
|
|
35
|
+
expect(pr.image_generation_error).toBeNull()
|
|
36
|
+
expect(pr.image_generation_error_last_updated_at).toBeNull()
|
|
37
|
+
expect(pr.image_generation_display_status).toBe("pending")
|
|
38
|
+
})
|
|
@@ -33,3 +33,22 @@ test("create package with private flag", async () => {
|
|
|
33
33
|
expect(response.status).toBe(200)
|
|
34
34
|
expect(response.data.package.is_private).toBe(true)
|
|
35
35
|
})
|
|
36
|
+
|
|
37
|
+
test("create package under org", async () => {
|
|
38
|
+
const { jane_axios } = await getTestServer()
|
|
39
|
+
|
|
40
|
+
const orgResponse = await jane_axios.post("/api/orgs/create", {
|
|
41
|
+
name: "testorg",
|
|
42
|
+
})
|
|
43
|
+
expect(orgResponse.status).toBe(200)
|
|
44
|
+
const orgId = orgResponse.data.org.org_id
|
|
45
|
+
|
|
46
|
+
const response = await jane_axios.post("/api/packages/create", {
|
|
47
|
+
name: "testorg/TestPackage",
|
|
48
|
+
description: "Test Description",
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
expect(response.status).toBe(200)
|
|
52
|
+
expect(response.data.package.owner_org_id).toBe(orgId)
|
|
53
|
+
expect(response.data.package.owner_github_username).toBe("testorg")
|
|
54
|
+
})
|
|
@@ -41,13 +41,12 @@ test("POST /packages/fork - successful fork using package_id", async () => {
|
|
|
41
41
|
expect(forkedPackage.is_private).toBe(false)
|
|
42
42
|
|
|
43
43
|
// List files from the forked package
|
|
44
|
-
const packageFilesResponse = await jane_axios.
|
|
45
|
-
|
|
46
|
-
{
|
|
44
|
+
const packageFilesResponse = await jane_axios.get("/api/package_files/list", {
|
|
45
|
+
params: {
|
|
47
46
|
package_name: forkedPackage.name,
|
|
48
47
|
use_latest_version: true,
|
|
49
48
|
},
|
|
50
|
-
)
|
|
49
|
+
})
|
|
51
50
|
|
|
52
51
|
const package_files = packageFilesResponse.data.package_files
|
|
53
52
|
|
|
@@ -77,3 +77,33 @@ test("GET /api/packages/get - should return package by name", async () => {
|
|
|
77
77
|
expect(responseBody.ok).toBe(true)
|
|
78
78
|
expect(responseBody.package).toBeDefined()
|
|
79
79
|
})
|
|
80
|
+
|
|
81
|
+
test("GET /api/packages/get - returns user_permissions when authenticated", async () => {
|
|
82
|
+
const { axios, jane_axios, unauthenticatedAxios } = await getTestServer()
|
|
83
|
+
|
|
84
|
+
const createResponse = await axios.post("/api/packages/create", {
|
|
85
|
+
name: "testuser/auth-package",
|
|
86
|
+
description: "desc",
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
const pkg = createResponse.data.package
|
|
90
|
+
|
|
91
|
+
const ownerResponse = await axios.get("/api/packages/get", {
|
|
92
|
+
params: { package_id: pkg.package_id },
|
|
93
|
+
})
|
|
94
|
+
expect(ownerResponse.data.package.user_permissions).toEqual({
|
|
95
|
+
can_manage_packages: true,
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
const otherResponse = await jane_axios.get("/api/packages/get", {
|
|
99
|
+
params: { package_id: pkg.package_id },
|
|
100
|
+
})
|
|
101
|
+
expect(otherResponse.data.package.user_permissions).toEqual({
|
|
102
|
+
can_manage_packages: false,
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
const unauthResponse = await unauthenticatedAxios.get("/api/packages/get", {
|
|
106
|
+
params: { package_id: pkg.package_id },
|
|
107
|
+
})
|
|
108
|
+
expect(unauthResponse.data.package.user_permissions).toBeUndefined()
|
|
109
|
+
})
|
|
@@ -41,8 +41,10 @@ test("get schematic svg of a package", async () => {
|
|
|
41
41
|
// create fsMap by getting all the files in the package with the file_path and content_text
|
|
42
42
|
const fsMap = new Map<string, string>()
|
|
43
43
|
// list all the files in the package
|
|
44
|
-
const files = await axios.
|
|
45
|
-
|
|
44
|
+
const files = await axios.get("/api/package_files/list", {
|
|
45
|
+
params: {
|
|
46
|
+
package_release_id: pkg_release.data.package_release.package_release_id,
|
|
47
|
+
},
|
|
46
48
|
})
|
|
47
49
|
for (const file of files.data.package_files) {
|
|
48
50
|
fsMap.set(file.file_path, file.content_text)
|
|
@@ -109,3 +109,37 @@ test("list packages", async () => {
|
|
|
109
109
|
const { data: authData } = await axios.get("/api/packages/list")
|
|
110
110
|
expect(authData.packages).toHaveLength(3) // Should return all packages when authenticated
|
|
111
111
|
})
|
|
112
|
+
|
|
113
|
+
test("list packages includes user_permissions when session provided", async () => {
|
|
114
|
+
const { axios, jane_axios, unauthenticatedAxios } = await getTestServer()
|
|
115
|
+
|
|
116
|
+
const pkg1 = (
|
|
117
|
+
await axios.post("/api/packages/create", {
|
|
118
|
+
name: "testuser/ownerpkg",
|
|
119
|
+
description: "", // minimal
|
|
120
|
+
})
|
|
121
|
+
).data.package
|
|
122
|
+
|
|
123
|
+
const pkg2 = (
|
|
124
|
+
await jane_axios.post("/api/packages/create", {
|
|
125
|
+
name: "jane/otherpkg",
|
|
126
|
+
description: "",
|
|
127
|
+
})
|
|
128
|
+
).data.package
|
|
129
|
+
|
|
130
|
+
const { data: listData } = await axios.get("/api/packages/list")
|
|
131
|
+
const ownerPkg = listData.packages.find(
|
|
132
|
+
(p: any) => p.package_id === pkg1.package_id,
|
|
133
|
+
)
|
|
134
|
+
const otherPkg = listData.packages.find(
|
|
135
|
+
(p: any) => p.package_id === pkg2.package_id,
|
|
136
|
+
)
|
|
137
|
+
expect(ownerPkg.user_permissions).toEqual({ can_manage_packages: true })
|
|
138
|
+
expect(otherPkg.user_permissions).toEqual({ can_manage_packages: false })
|
|
139
|
+
|
|
140
|
+
const { data: unauthData } = await unauthenticatedAxios.get(
|
|
141
|
+
"/api/packages/list",
|
|
142
|
+
{ params: { owner_github_username: "testuser" } },
|
|
143
|
+
)
|
|
144
|
+
expect(unauthData.packages[0].user_permissions).toBeUndefined()
|
|
145
|
+
})
|