@tscircuit/fake-snippets 0.0.34 → 0.0.35

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 (42) hide show
  1. package/.github/workflows/bun-test.yml +3 -0
  2. package/bun-tests/fake-snippets-api/fixtures/get-test-server.ts +12 -1
  3. package/bun-tests/fake-snippets-api/routes/accounts/get_account_balance.test.ts +1 -5
  4. package/bun-tests/fake-snippets-api/routes/orders/create.test.ts +0 -1
  5. package/bun-tests/fake-snippets-api/routes/orders/list.test.ts +3 -3
  6. package/bun-tests/fake-snippets-api/routes/package_files/create.test.ts +28 -84
  7. package/bun-tests/fake-snippets-api/routes/package_releases/create.test.ts +12 -36
  8. package/bun-tests/fake-snippets-api/routes/package_releases/list.test.ts +4 -12
  9. package/bun-tests/fake-snippets-api/routes/package_releases/update.test.ts +16 -48
  10. package/bun-tests/fake-snippets-api/routes/packages/add_star.test.ts +12 -44
  11. package/bun-tests/fake-snippets-api/routes/packages/create.test.ts +4 -12
  12. package/bun-tests/fake-snippets-api/routes/packages/delete.test.ts +15 -41
  13. package/bun-tests/fake-snippets-api/routes/packages/list-1.test.ts +1 -5
  14. package/bun-tests/fake-snippets-api/routes/packages/list-2.test.ts +6 -19
  15. package/bun-tests/fake-snippets-api/routes/packages/remove_star.test.ts +9 -36
  16. package/bun-tests/fake-snippets-api/routes/packages/update.test.ts +26 -74
  17. package/bun-tests/fake-snippets-api/routes/snippets/add_star.test.ts +12 -47
  18. package/bun-tests/fake-snippets-api/routes/snippets/create.test.ts +6 -14
  19. package/bun-tests/fake-snippets-api/routes/snippets/delete.test.ts +9 -33
  20. package/bun-tests/fake-snippets-api/routes/snippets/generate_from_jlcpcb.test.ts +3 -12
  21. package/bun-tests/fake-snippets-api/routes/snippets/list.test.ts +9 -34
  22. package/bun-tests/fake-snippets-api/routes/snippets/remove_star.test.ts +12 -44
  23. package/bun-tests/fake-snippets-api/routes/snippets/update.test.ts +12 -36
  24. package/bun.lock +27 -29
  25. package/dist/bundle.js +45 -27
  26. package/fake-snippets-api/lib/middleware/with-optional-session-auth.ts +27 -8
  27. package/fake-snippets-api/lib/middleware/with-session-auth.ts +17 -6
  28. package/fake-snippets-api/routes/api/snippets/add_star.ts +2 -4
  29. package/fake-snippets-api/routes/api/snippets/create.ts +8 -10
  30. package/package.json +5 -4
  31. package/src/App.tsx +3 -0
  32. package/src/components/CodeAndPreview.tsx +2 -2
  33. package/src/components/CodeEditor.tsx +1 -1
  34. package/src/components/DownloadButtonAndMenu.tsx +13 -11
  35. package/src/components/Footer.tsx +3 -0
  36. package/src/components/SnippetCard.tsx +159 -0
  37. package/src/components/ViewPackagePage/components/main-content-view-selector.tsx +89 -27
  38. package/src/pages/404.tsx +56 -0
  39. package/src/pages/trending.tsx +222 -0
  40. package/src/pages/user-profile.tsx +11 -102
  41. package/src/pages/view-package.tsx +18 -2
  42. package/src/lib/templates/manual-edits-template.ts +0 -5
@@ -24,5 +24,8 @@ jobs:
24
24
  - name: Install dependencies
25
25
  run: bun install
26
26
 
27
+ - name: Set environment variable
28
+ run: echo "BUN_TEST=true" >> $GITHUB_ENV
29
+
27
30
  - name: Run tests
28
31
  run: bun test
@@ -8,6 +8,7 @@ interface TestFixture {
8
8
  url: string
9
9
  server: any
10
10
  axios: typeof defaultAxios
11
+ jane_axios: typeof defaultAxios
11
12
  unauthenticatedAxios: typeof defaultAxios
12
13
  db: DbClient
13
14
  seed: ReturnType<typeof seedDatabase>
@@ -31,6 +32,12 @@ export const getTestServer = async (): Promise<TestFixture> => {
31
32
  Authorization: `Bearer ${seed.account.account_id}`,
32
33
  },
33
34
  })
35
+ const jane_axios = defaultAxios.create({
36
+ baseURL: url,
37
+ headers: {
38
+ Authorization: `Bearer ${seed.account2.account_id}`,
39
+ },
40
+ })
34
41
  const unauthenticatedAxios = defaultAxios.create({
35
42
  baseURL: url,
36
43
  })
@@ -45,6 +52,7 @@ export const getTestServer = async (): Promise<TestFixture> => {
45
52
  url,
46
53
  server,
47
54
  axios,
55
+ jane_axios,
48
56
  unauthenticatedAxios,
49
57
  db,
50
58
  seed,
@@ -67,6 +75,9 @@ const seedDatabase = (db: DbClient) => {
67
75
  phone: "555-123-4567",
68
76
  },
69
77
  })
78
+ const account2 = db.addAccount({
79
+ github_username: "jane",
80
+ })
70
81
  const order = db.addOrder({
71
82
  account_id: account.account_id,
72
83
  is_running: false,
@@ -88,5 +99,5 @@ const seedDatabase = (db: DbClient) => {
88
99
  completed_at: null,
89
100
  })
90
101
 
91
- return { account, order }
102
+ return { account, order, account2 }
92
103
  }
@@ -4,11 +4,7 @@ import { test, expect } from "bun:test"
4
4
  test("get account balance", async () => {
5
5
  const { axios } = await getTestServer()
6
6
 
7
- const response = await axios.get("/api/accounts/get_account_balance", {
8
- headers: {
9
- Authorization: "Bearer 1234",
10
- },
11
- })
7
+ const response = await axios.get("/api/accounts/get_account_balance")
12
8
 
13
9
  expect(response.status).toBe(200)
14
10
  expect(response.data.account_balance).toBeDefined()
@@ -13,6 +13,5 @@ test("create order", async () => {
13
13
 
14
14
  expect(response.status).toBe(200)
15
15
  expect(response.data.order).toBeDefined()
16
- expect(response.data.order.account_id).toBe("account-1234")
17
16
  expect(response.data.order.circuit_json).toEqual(order.circuit_json)
18
17
  })
@@ -15,14 +15,14 @@ test("list orders", async () => {
15
15
 
16
16
  expect(response.status).toBe(200)
17
17
  expect(response.data.orders).toBeDefined()
18
- expect(response.data.orders).toHaveLength(1)
18
+ expect(response.data.orders).toHaveLength(2)
19
19
  expect(response.data.orders[0].circuit_json).toEqual(order.circuit_json)
20
20
  })
21
21
 
22
22
  test("list orders with empty result", async () => {
23
- const { axios } = await getTestServer()
23
+ const { jane_axios } = await getTestServer()
24
24
 
25
- const response = await axios.get("/api/orders/list")
25
+ const response = await jane_axios.get("/api/orders/list")
26
26
 
27
27
  expect(response.status).toBe(200)
28
28
  expect(response.data.orders).toBeDefined()
@@ -5,18 +5,10 @@ test("create package file with content_text", async () => {
5
5
  const { axios } = await getTestServer()
6
6
 
7
7
  // First create a package
8
- const packageResponse = await axios.post(
9
- "/api/packages/create",
10
- {
11
- name: "@test/package-files-create",
12
- description: "A test package for creating files",
13
- },
14
- {
15
- headers: {
16
- Authorization: "Bearer 1234",
17
- },
18
- },
19
- )
8
+ const packageResponse = await axios.post("/api/packages/create", {
9
+ name: "@test/package-files-create",
10
+ description: "A test package for creating files",
11
+ })
20
12
  expect(packageResponse.status).toBe(200)
21
13
  const createdPackage = packageResponse.data.package
22
14
 
@@ -60,18 +52,10 @@ test("create package file with content_base64", async () => {
60
52
  const { axios } = await getTestServer()
61
53
 
62
54
  // First create a package
63
- const packageResponse = await axios.post(
64
- "/api/packages/create",
65
- {
66
- name: "@test/package-files-create-base64",
67
- description: "A test package for creating files with base64",
68
- },
69
- {
70
- headers: {
71
- Authorization: "Bearer 1234",
72
- },
73
- },
74
- )
55
+ const packageResponse = await axios.post("/api/packages/create", {
56
+ name: "@test/package-files-create-base64",
57
+ description: "A test package for creating files with base64",
58
+ })
75
59
  expect(packageResponse.status).toBe(200)
76
60
  const createdPackage = packageResponse.data.package
77
61
 
@@ -115,18 +99,10 @@ test("create package file using package_name_with_version", async () => {
115
99
  // First create a package
116
100
  const packageName = "@test/package-files-create-by-name"
117
101
  const version = "2.0.0"
118
- const packageResponse = await axios.post(
119
- "/api/packages/create",
120
- {
121
- name: packageName,
122
- description: "A test package for creating files by name",
123
- },
124
- {
125
- headers: {
126
- Authorization: "Bearer 1234",
127
- },
128
- },
129
- )
102
+ const packageResponse = await axios.post("/api/packages/create", {
103
+ name: packageName,
104
+ description: "A test package for creating files by name",
105
+ })
130
106
  expect(packageResponse.status).toBe(200)
131
107
  const createdPackage = packageResponse.data.package
132
108
 
@@ -206,18 +182,10 @@ test("create package file - 400 for missing content", async () => {
206
182
  const { axios } = await getTestServer()
207
183
 
208
184
  // First create a package and release
209
- const packageResponse = await axios.post(
210
- "/api/packages/create",
211
- {
212
- name: "@test/package-files-create-error",
213
- description: "A test package for error cases",
214
- },
215
- {
216
- headers: {
217
- Authorization: "Bearer 1234",
218
- },
219
- },
220
- )
185
+ const packageResponse = await axios.post("/api/packages/create", {
186
+ name: "@test/package-files-create-error",
187
+ description: "A test package for error cases",
188
+ })
221
189
  const createdPackage = packageResponse.data.package
222
190
 
223
191
  const releaseResponse = await axios.post("/api/package_releases/create", {
@@ -243,18 +211,10 @@ test("create package file - 400 for both content_text and content_base64", async
243
211
  const { axios } = await getTestServer()
244
212
 
245
213
  // First create a package and release
246
- const packageResponse = await axios.post(
247
- "/api/packages/create",
248
- {
249
- name: "@test/package-files-create-error-2",
250
- description: "Another test package for error cases",
251
- },
252
- {
253
- headers: {
254
- Authorization: "Bearer 1234",
255
- },
256
- },
257
- )
214
+ const packageResponse = await axios.post("/api/packages/create", {
215
+ name: "@test/package-files-create-error-2",
216
+ description: "Another test package for error cases",
217
+ })
258
218
  const createdPackage = packageResponse.data.package
259
219
 
260
220
  const releaseResponse = await axios.post("/api/package_releases/create", {
@@ -281,18 +241,10 @@ test("create release tarball package file", async () => {
281
241
  const { axios } = await getTestServer()
282
242
 
283
243
  // First create a package
284
- const packageResponse = await axios.post(
285
- "/api/packages/create",
286
- {
287
- name: "@test/package-files-create-tarball",
288
- description: "A test package for creating tarball files",
289
- },
290
- {
291
- headers: {
292
- Authorization: "Bearer 1234",
293
- },
294
- },
295
- )
244
+ const packageResponse = await axios.post("/api/packages/create", {
245
+ name: "@test/package-files-create-tarball",
246
+ description: "A test package for creating tarball files",
247
+ })
296
248
  expect(packageResponse.status).toBe(200)
297
249
  const createdPackage = packageResponse.data.package
298
250
 
@@ -335,18 +287,10 @@ test("create package file - 400 for release tarball without npm_pack_output", as
335
287
  const { axios } = await getTestServer()
336
288
 
337
289
  // First create a package and release
338
- const packageResponse = await axios.post(
339
- "/api/packages/create",
340
- {
341
- name: "@test/package-files-create-tarball-error",
342
- description: "Test package for tarball error cases",
343
- },
344
- {
345
- headers: {
346
- Authorization: "Bearer 1234",
347
- },
348
- },
349
- )
290
+ const packageResponse = await axios.post("/api/packages/create", {
291
+ name: "@test/package-files-create-tarball-error",
292
+ description: "Test package for tarball error cases",
293
+ })
350
294
  const createdPackage = packageResponse.data.package
351
295
 
352
296
  const releaseResponse = await axios.post("/api/package_releases/create", {
@@ -5,18 +5,10 @@ test("create package release", async () => {
5
5
  const { axios } = await getTestServer()
6
6
 
7
7
  // First create a package
8
- const packageResponse = await axios.post(
9
- "/api/packages/create",
10
- {
11
- name: "testuser/test-package",
12
- description: "Test Description",
13
- },
14
- {
15
- headers: {
16
- Authorization: "Bearer 1234",
17
- },
18
- },
19
- )
8
+ const packageResponse = await axios.post("/api/packages/create", {
9
+ name: "testuser/test-package",
10
+ description: "Test Description",
11
+ })
20
12
  expect(packageResponse.status).toBe(200)
21
13
  const createdPackage = packageResponse.data.package
22
14
 
@@ -42,18 +34,10 @@ test("create package release using package_name_with_version", async () => {
42
34
  const { axios } = await getTestServer()
43
35
 
44
36
  // First create a package
45
- const packageResponse = await axios.post(
46
- "/api/packages/create",
47
- {
48
- name: "testuser/test-package-2",
49
- description: "Test Description",
50
- },
51
- {
52
- headers: {
53
- Authorization: "Bearer 1234",
54
- },
55
- },
56
- )
37
+ const packageResponse = await axios.post("/api/packages/create", {
38
+ name: "testuser/test-package-2",
39
+ description: "Test Description",
40
+ })
57
41
  expect(packageResponse.status).toBe(200)
58
42
  const createdPackage = packageResponse.data.package
59
43
 
@@ -76,18 +60,10 @@ test("create package release - version already exists", async () => {
76
60
  const { axios } = await getTestServer()
77
61
 
78
62
  // First create a package
79
- const packageResponse = await axios.post(
80
- "/api/packages/create",
81
- {
82
- name: "testuser/test-package-3",
83
- description: "Test Description",
84
- },
85
- {
86
- headers: {
87
- Authorization: "Bearer 1234",
88
- },
89
- },
90
- )
63
+ const packageResponse = await axios.post("/api/packages/create", {
64
+ name: "testuser/test-package-3",
65
+ description: "Test Description",
66
+ })
91
67
  expect(packageResponse.status).toBe(200)
92
68
  const createdPackage = packageResponse.data.package
93
69
 
@@ -5,18 +5,10 @@ test("list package releases", async () => {
5
5
  const { axios, db } = await getTestServer()
6
6
 
7
7
  // First create a test package
8
- const packageResponse = await axios.post(
9
- "/api/packages/create",
10
- {
11
- name: "testuser/test-package",
12
- description: "Test Description",
13
- },
14
- {
15
- headers: {
16
- Authorization: "Bearer 1234",
17
- },
18
- },
19
- )
8
+ const packageResponse = await axios.post("/api/packages/create", {
9
+ name: "testuser/test-package",
10
+ description: "Test Description",
11
+ })
20
12
  const packageId = packageResponse.data.package.package_id
21
13
 
22
14
  // Add some test package releases
@@ -5,18 +5,10 @@ test("update package release", async () => {
5
5
  const { axios, db } = await getTestServer()
6
6
 
7
7
  // First create a package
8
- const packageResponse = await axios.post(
9
- "/api/packages/create",
10
- {
11
- name: "testuser/test-package",
12
- description: "Test Description",
13
- },
14
- {
15
- headers: {
16
- Authorization: "Bearer 1234",
17
- },
18
- },
19
- )
8
+ const packageResponse = await axios.post("/api/packages/create", {
9
+ name: "testuser/test-package",
10
+ description: "Test Description",
11
+ })
20
12
  const packageId = packageResponse.data.package.package_id
21
13
 
22
14
  // Create a package release
@@ -49,18 +41,10 @@ test("update package release using package_name_with_version", async () => {
49
41
  const { axios, db } = await getTestServer()
50
42
 
51
43
  // First create a package
52
- const packageResponse = await axios.post(
53
- "/api/packages/create",
54
- {
55
- name: "testuser/test-package-2",
56
- description: "Test Description",
57
- },
58
- {
59
- headers: {
60
- Authorization: "Bearer 1234",
61
- },
62
- },
63
- )
44
+ const packageResponse = await axios.post("/api/packages/create", {
45
+ name: "testuser/test-package-2",
46
+ description: "Test Description",
47
+ })
64
48
  const packageName = packageResponse.data.package.name
65
49
  const version = "2.0.0"
66
50
 
@@ -89,18 +73,10 @@ test("update package release - handle is_latest flag", async () => {
89
73
  const { axios, db } = await getTestServer()
90
74
 
91
75
  // Create a package
92
- const packageResponse = await axios.post(
93
- "/api/packages/create",
94
- {
95
- name: "testuser/test-package-3",
96
- description: "Test Description",
97
- },
98
- {
99
- headers: {
100
- Authorization: "Bearer 1234",
101
- },
102
- },
103
- )
76
+ const packageResponse = await axios.post("/api/packages/create", {
77
+ name: "testuser/test-package-3",
78
+ description: "Test Description",
79
+ })
104
80
  const packageId = packageResponse.data.package.package_id
105
81
 
106
82
  // Create two releases
@@ -158,18 +134,10 @@ test("update package release - no fields provided", async () => {
158
134
  const { axios } = await getTestServer()
159
135
 
160
136
  // Create a package and release first
161
- const packageResponse = await axios.post(
162
- "/api/packages/create",
163
- {
164
- name: "testuser/test-package-4",
165
- description: "Test Description",
166
- },
167
- {
168
- headers: {
169
- Authorization: "Bearer 1234",
170
- },
171
- },
172
- )
137
+ const packageResponse = await axios.post("/api/packages/create", {
138
+ name: "testuser/test-package-4",
139
+ description: "Test Description",
140
+ })
173
141
  const releaseResponse = await axios.post("/api/package_releases/create", {
174
142
  package_id: packageResponse.data.package.package_id,
175
143
  version: "1.0.0",
@@ -70,17 +70,9 @@ test("add star to non-existent package", async () => {
70
70
  const { axios } = await getTestServer()
71
71
 
72
72
  try {
73
- await axios.post(
74
- "/api/packages/add_star",
75
- {
76
- package_id: "non-existent-id",
77
- },
78
- {
79
- headers: {
80
- Authorization: "Bearer 1234",
81
- },
82
- },
83
- )
73
+ await axios.post("/api/packages/add_star", {
74
+ package_id: "non-existent-id",
75
+ })
84
76
  expect(true).toBe(false) // Should not reach here
85
77
  } catch (error: any) {
86
78
  expect(error.status).toBe(404)
@@ -92,17 +84,9 @@ test("add star to non-existent package by name", async () => {
92
84
  const { axios } = await getTestServer()
93
85
 
94
86
  try {
95
- await axios.post(
96
- "/api/packages/add_star",
97
- {
98
- name: "non-existent-package",
99
- },
100
- {
101
- headers: {
102
- Authorization: "Bearer 1234",
103
- },
104
- },
105
- )
87
+ await axios.post("/api/packages/add_star", {
88
+ name: "non-existent-package",
89
+ })
106
90
  expect(true).toBe(false) // Should not reach here
107
91
  } catch (error: any) {
108
92
  expect(error.status).toBe(404)
@@ -126,31 +110,15 @@ test("add star to already starred package", async () => {
126
110
  const createdPackage = createResponse.data.package
127
111
 
128
112
  // Star the package first time
129
- await axios.post(
130
- "/api/packages/add_star",
131
- {
132
- package_id: createdPackage.package_id,
133
- },
134
- {
135
- headers: {
136
- Authorization: "Bearer 1234",
137
- },
138
- },
139
- )
113
+ await axios.post("/api/packages/add_star", {
114
+ package_id: createdPackage.package_id,
115
+ })
140
116
 
141
117
  // Try to star again
142
118
  try {
143
- await axios.post(
144
- "/api/packages/add_star",
145
- {
146
- package_id: createdPackage.package_id,
147
- },
148
- {
149
- headers: {
150
- Authorization: "Bearer 1234",
151
- },
152
- },
153
- )
119
+ await axios.post("/api/packages/add_star", {
120
+ package_id: createdPackage.package_id,
121
+ })
154
122
  expect(true).toBe(false) // Should not reach here
155
123
  } catch (error: any) {
156
124
  expect(error.status).toBe(400)
@@ -4,18 +4,10 @@ import { test, expect } from "bun:test"
4
4
  test("create package", async () => {
5
5
  const { axios } = await getTestServer()
6
6
 
7
- const response = await axios.post(
8
- "/api/packages/create",
9
- {
10
- name: "testuser/TestPackage",
11
- description: "Test Description",
12
- },
13
- {
14
- headers: {
15
- Authorization: "Bearer 1234",
16
- },
17
- },
18
- )
7
+ const response = await axios.post("/api/packages/create", {
8
+ name: "testuser/TestPackage",
9
+ description: "Test Description",
10
+ })
19
11
 
20
12
  expect(response.status).toBe(200)
21
13
  expect(response.data.package.name).toBe("testuser/TestPackage")
@@ -5,33 +5,23 @@ test("delete package", async () => {
5
5
  const { axios, db } = await getTestServer()
6
6
 
7
7
  // Add a test package
8
- const pkg = {
9
- name: "test-package",
10
- owner_org_id: "org-1234", // Changed to match the default auth context's personal_org_id
11
- created_at: "2023-01-01T00:00:00Z",
12
- updated_at: "2023-01-01T00:00:00Z",
8
+ const createdPackage = await axios.post("/api/packages/create", {
9
+ name: "testuser/test-package",
13
10
  description: "Test Description",
14
- }
15
- const addedPackage: any = db.addPackage(pkg as any)
11
+ })
16
12
 
17
13
  // Delete the package
18
- const response = await axios.post(
19
- "/api/packages/delete",
20
- {
21
- package_id: addedPackage.package_id,
22
- },
23
- {
24
- headers: {
25
- Authorization: "Bearer 1234",
26
- },
27
- },
28
- )
14
+ const response = await axios.post("/api/packages/delete", {
15
+ package_id: createdPackage.data.package.package_id,
16
+ })
29
17
 
30
18
  expect(response.status).toBe(200)
31
19
  expect(response.data.ok).toBe(true)
32
20
 
33
21
  // Verify the package was deleted from the database
34
- const deletedPackage = db.getPackageById(addedPackage.package_id)
22
+ const deletedPackage = db.getPackageById(
23
+ createdPackage.data.package.package_id,
24
+ )
35
25
  expect(deletedPackage).toBeUndefined()
36
26
 
37
27
  // List all the packages and verify the deleted package is not in the list
@@ -45,17 +35,9 @@ test("delete non-existent package", async () => {
45
35
  const { axios } = await getTestServer()
46
36
 
47
37
  try {
48
- await axios.post(
49
- "/api/packages/delete",
50
- {
51
- package_id: "non-existent-id",
52
- },
53
- {
54
- headers: {
55
- Authorization: "Bearer 1234",
56
- },
57
- },
58
- )
38
+ await axios.post("/api/packages/delete", {
39
+ package_id: "non-existent-id",
40
+ })
59
41
  // If the request doesn't throw an error, fail the test
60
42
  expect(true).toBe(false)
61
43
  } catch (error: any) {
@@ -78,17 +60,9 @@ test("delete package without permission", async () => {
78
60
  const addedPackage: any = db.addPackage(pkg as any)
79
61
 
80
62
  try {
81
- await axios.post(
82
- "/api/packages/delete",
83
- {
84
- package_id: addedPackage.package_id,
85
- },
86
- {
87
- headers: {
88
- Authorization: "Bearer 1234",
89
- },
90
- },
91
- )
63
+ await axios.post("/api/packages/delete", {
64
+ package_id: addedPackage.package_id,
65
+ })
92
66
  // If the request doesn't throw an error, fail the test
93
67
  expect(true).toBe(false)
94
68
  } catch (error: any) {
@@ -106,10 +106,6 @@ test("list packages", async () => {
106
106
  expect(nonExistentData.packages).toHaveLength(0)
107
107
 
108
108
  // Test with authenticated request
109
- const { data: authData } = await axios.get("/api/packages/list", {
110
- headers: {
111
- Authorization: "Bearer 1234",
112
- },
113
- })
109
+ const { data: authData } = await axios.get("/api/packages/list")
114
110
  expect(authData.packages).toHaveLength(3) // Should return all packages when authenticated
115
111
  })