@tscircuit/fake-snippets 0.0.28 → 0.0.29
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/bun-tests/fake-snippets-api/routes/packages/add_star.test.ts +161 -0
- package/bun-tests/fake-snippets-api/routes/packages/get.test.ts +1 -1
- package/bun-tests/fake-snippets-api/routes/packages/remove_star.test.ts +158 -0
- package/dist/bundle.js +261 -140
- package/fake-snippets-api/routes/api/packages/add_star.ts +82 -0
- package/fake-snippets-api/routes/api/packages/get.ts +12 -2
- package/fake-snippets-api/routes/api/packages/remove_star.ts +70 -0
- package/package.json +1 -1
- package/src/components/ViewPackagePage/components/package-header.tsx +33 -15
- package/src/components/ViewPackagePage/components/repo-page-content.tsx +1 -0
- package/src/hooks/use-package-stars.ts +86 -0
- package/src/pages/user-profile.tsx +15 -3
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { getTestServer } from "bun-tests/fake-snippets-api/fixtures/get-test-server"
|
|
2
|
+
import { expect, test } from "bun:test"
|
|
3
|
+
|
|
4
|
+
test("add star to package using package_id", async () => {
|
|
5
|
+
const { axios } = await getTestServer()
|
|
6
|
+
|
|
7
|
+
// Create a test package using the create endpoint
|
|
8
|
+
const newPackageData = {
|
|
9
|
+
name: "test-package",
|
|
10
|
+
description: "Test Description",
|
|
11
|
+
}
|
|
12
|
+
const createResponse = await axios.post(
|
|
13
|
+
"/api/packages/create",
|
|
14
|
+
newPackageData,
|
|
15
|
+
)
|
|
16
|
+
expect(createResponse.status).toBe(200)
|
|
17
|
+
const createdPackage = createResponse.data.package
|
|
18
|
+
|
|
19
|
+
// Star the package using package_id
|
|
20
|
+
const response = await axios.post("/api/packages/add_star", {
|
|
21
|
+
package_id: createdPackage.package_id,
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
expect(response.status).toBe(200)
|
|
25
|
+
expect(response.data.ok).toBe(true)
|
|
26
|
+
|
|
27
|
+
// Verify star was added by checking the package again
|
|
28
|
+
const getResponse = await axios.get("/api/packages/get", {
|
|
29
|
+
params: { package_id: createdPackage.package_id },
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
expect(getResponse.status).toBe(200)
|
|
33
|
+
expect(getResponse.data.package.star_count).toBe(1)
|
|
34
|
+
expect(getResponse.data.package.is_starred).toBe(true)
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
test("add star to package using name", async () => {
|
|
38
|
+
const { axios } = await getTestServer()
|
|
39
|
+
|
|
40
|
+
// Create a test package using the create endpoint
|
|
41
|
+
const newPackageData = {
|
|
42
|
+
name: "test-package-2",
|
|
43
|
+
description: "Test Description",
|
|
44
|
+
}
|
|
45
|
+
const createResponse = await axios.post(
|
|
46
|
+
"/api/packages/create",
|
|
47
|
+
newPackageData,
|
|
48
|
+
)
|
|
49
|
+
expect(createResponse.status).toBe(200)
|
|
50
|
+
const createdPackage = createResponse.data.package
|
|
51
|
+
|
|
52
|
+
// Star the package using name
|
|
53
|
+
const response = await axios.post("/api/packages/add_star", {
|
|
54
|
+
name: createdPackage.name,
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
expect(response.status).toBe(200)
|
|
58
|
+
expect(response.data.ok).toBe(true)
|
|
59
|
+
|
|
60
|
+
// Verify star was added by checking the package again
|
|
61
|
+
const getResponse = await axios.get("/api/packages/get", {
|
|
62
|
+
params: { package_id: createdPackage.package_id },
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
expect(getResponse.status).toBe(200)
|
|
66
|
+
expect(getResponse.data.package.star_count).toBe(1)
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
test("add star to non-existent package", async () => {
|
|
70
|
+
const { axios } = await getTestServer()
|
|
71
|
+
|
|
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
|
+
)
|
|
84
|
+
expect(true).toBe(false) // Should not reach here
|
|
85
|
+
} catch (error: any) {
|
|
86
|
+
expect(error.status).toBe(404)
|
|
87
|
+
expect(error.data.error.message).toBe("Package not found")
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
test("add star to non-existent package by name", async () => {
|
|
92
|
+
const { axios } = await getTestServer()
|
|
93
|
+
|
|
94
|
+
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
|
+
)
|
|
106
|
+
expect(true).toBe(false) // Should not reach here
|
|
107
|
+
} catch (error: any) {
|
|
108
|
+
expect(error.status).toBe(404)
|
|
109
|
+
expect(error.data.error.message).toBe("Package not found")
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
test("add star to already starred package", async () => {
|
|
114
|
+
const { axios } = await getTestServer()
|
|
115
|
+
|
|
116
|
+
// Create a test package using the create endpoint
|
|
117
|
+
const newPackageData = {
|
|
118
|
+
name: "test-package-3",
|
|
119
|
+
description: "Test Description",
|
|
120
|
+
}
|
|
121
|
+
const createResponse = await axios.post(
|
|
122
|
+
"/api/packages/create",
|
|
123
|
+
newPackageData,
|
|
124
|
+
)
|
|
125
|
+
expect(createResponse.status).toBe(200)
|
|
126
|
+
const createdPackage = createResponse.data.package
|
|
127
|
+
|
|
128
|
+
// 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
|
+
)
|
|
140
|
+
|
|
141
|
+
// Try to star again
|
|
142
|
+
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
|
+
)
|
|
154
|
+
expect(true).toBe(false) // Should not reach here
|
|
155
|
+
} catch (error: any) {
|
|
156
|
+
expect(error.status).toBe(400)
|
|
157
|
+
expect(error.data.error.message).toBe(
|
|
158
|
+
"You have already starred this package",
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
})
|
|
@@ -38,7 +38,7 @@ test("GET /api/packages/get - should return package by package_id", async () =>
|
|
|
38
38
|
expect(getResponse.status).toBe(200)
|
|
39
39
|
const responseBody = getResponse.data
|
|
40
40
|
expect(responseBody.ok).toBe(true)
|
|
41
|
-
expect(responseBody.package).
|
|
41
|
+
expect(responseBody.package).toBeDefined()
|
|
42
42
|
})
|
|
43
43
|
|
|
44
44
|
test("GET /api/packages/get - should return 404 if package not found", async () => {
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { getTestServer } from "bun-tests/fake-snippets-api/fixtures/get-test-server"
|
|
2
|
+
import { expect, test } from "bun:test"
|
|
3
|
+
|
|
4
|
+
test("remove star from package using package_id", async () => {
|
|
5
|
+
const { axios } = await getTestServer()
|
|
6
|
+
|
|
7
|
+
// Create a test package
|
|
8
|
+
const newPackageData = {
|
|
9
|
+
name: "test-package",
|
|
10
|
+
description: "Test Description",
|
|
11
|
+
}
|
|
12
|
+
const createResponse = await axios.post(
|
|
13
|
+
"/api/packages/create",
|
|
14
|
+
newPackageData,
|
|
15
|
+
)
|
|
16
|
+
expect(createResponse.status).toBe(200)
|
|
17
|
+
const createdPackage = createResponse.data.package
|
|
18
|
+
|
|
19
|
+
// Star the package first
|
|
20
|
+
await axios.post("/api/packages/add_star", {
|
|
21
|
+
package_id: createdPackage.package_id,
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
// Remove star from package
|
|
25
|
+
const response = await axios.post("/api/packages/remove_star", {
|
|
26
|
+
package_id: createdPackage.package_id,
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
expect(response.status).toBe(200)
|
|
30
|
+
expect(response.data.ok).toBe(true)
|
|
31
|
+
|
|
32
|
+
// Verify star was removed by checking the package again
|
|
33
|
+
const getResponse = await axios.get("/api/packages/get", {
|
|
34
|
+
params: { package_id: createdPackage.package_id },
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
expect(getResponse.status).toBe(200)
|
|
38
|
+
expect(getResponse.data.package.star_count).toBe(0)
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
test("remove star from package using name", async () => {
|
|
42
|
+
const { axios } = await getTestServer()
|
|
43
|
+
|
|
44
|
+
// Create a test package
|
|
45
|
+
const newPackageData = {
|
|
46
|
+
name: "test-package-2",
|
|
47
|
+
description: "Test Description",
|
|
48
|
+
}
|
|
49
|
+
const createResponse = await axios.post(
|
|
50
|
+
"/api/packages/create",
|
|
51
|
+
newPackageData,
|
|
52
|
+
)
|
|
53
|
+
expect(createResponse.status).toBe(200)
|
|
54
|
+
const createdPackage = createResponse.data.package
|
|
55
|
+
|
|
56
|
+
// Star the package first
|
|
57
|
+
await axios.post("/api/packages/add_star", {
|
|
58
|
+
package_id: createdPackage.package_id,
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
// Remove star using name
|
|
62
|
+
const response = await axios.post("/api/packages/remove_star", {
|
|
63
|
+
name: createdPackage.name,
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
expect(response.status).toBe(200)
|
|
67
|
+
expect(response.data.ok).toBe(true)
|
|
68
|
+
|
|
69
|
+
// Verify star was removed by checking the package again
|
|
70
|
+
const getResponse = await axios.get("/api/packages/get", {
|
|
71
|
+
params: { package_id: createdPackage.package_id },
|
|
72
|
+
headers: {
|
|
73
|
+
Authorization: "Bearer 1234",
|
|
74
|
+
},
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
expect(getResponse.status).toBe(200)
|
|
78
|
+
expect(getResponse.data.package.star_count).toBe(0)
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
test("remove star from non-existent package", async () => {
|
|
82
|
+
const { axios } = await getTestServer()
|
|
83
|
+
|
|
84
|
+
try {
|
|
85
|
+
await axios.post(
|
|
86
|
+
"/api/packages/remove_star",
|
|
87
|
+
{
|
|
88
|
+
package_id: "non-existent-id",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
headers: {
|
|
92
|
+
Authorization: "Bearer 1234",
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
)
|
|
96
|
+
expect(true).toBe(false) // Should not reach here
|
|
97
|
+
} catch (error: any) {
|
|
98
|
+
expect(error.status).toBe(404)
|
|
99
|
+
expect(error.data.error.message).toBe("Package not found")
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
test("remove star from non-existent package by name", async () => {
|
|
104
|
+
const { axios } = await getTestServer()
|
|
105
|
+
|
|
106
|
+
try {
|
|
107
|
+
await axios.post(
|
|
108
|
+
"/api/packages/remove_star",
|
|
109
|
+
{
|
|
110
|
+
name: "non-existent-package",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
headers: {
|
|
114
|
+
Authorization: "Bearer 1234",
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
)
|
|
118
|
+
expect(true).toBe(false) // Should not reach here
|
|
119
|
+
} catch (error: any) {
|
|
120
|
+
expect(error.status).toBe(404)
|
|
121
|
+
expect(error.data.error.message).toBe("Package not found")
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
test("remove star from unstarred package", async () => {
|
|
126
|
+
const { axios } = await getTestServer()
|
|
127
|
+
|
|
128
|
+
// Create a test package
|
|
129
|
+
const newPackageData = {
|
|
130
|
+
name: "test-package-3",
|
|
131
|
+
description: "Test Description",
|
|
132
|
+
}
|
|
133
|
+
const createResponse = await axios.post(
|
|
134
|
+
"/api/packages/create",
|
|
135
|
+
newPackageData,
|
|
136
|
+
)
|
|
137
|
+
expect(createResponse.status).toBe(200)
|
|
138
|
+
const createdPackage = createResponse.data.package
|
|
139
|
+
|
|
140
|
+
// Try to remove star without starring first
|
|
141
|
+
try {
|
|
142
|
+
await axios.post(
|
|
143
|
+
"/api/packages/remove_star",
|
|
144
|
+
{
|
|
145
|
+
package_id: createdPackage.package_id,
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
headers: {
|
|
149
|
+
Authorization: "Bearer 1234",
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
)
|
|
153
|
+
expect(true).toBe(false) // Should not reach here
|
|
154
|
+
} catch (error: any) {
|
|
155
|
+
expect(error.status).toBe(400)
|
|
156
|
+
expect(error.data.error.message).toBe("You have not starred this package")
|
|
157
|
+
}
|
|
158
|
+
})
|