@porulle/core 0.8.0 → 0.9.0
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/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +26 -7
- package/dist/auth/setup.d.ts.map +1 -1
- package/dist/auth/setup.js +7 -5
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -0
- package/dist/config/types.d.ts +9 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/hooks/checkout-completion.d.ts.map +1 -1
- package/dist/hooks/checkout-completion.js +2 -2
- package/dist/hooks/checkout.d.ts.map +1 -1
- package/dist/hooks/checkout.js +1 -1
- package/dist/interfaces/rest/routes/admin/staff.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin/staff.js +37 -3
- package/dist/interfaces/rest/routes/checkout.d.ts +9 -0
- package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/checkout.js +81 -22
- package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/inventory.js +13 -0
- package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/orders.js +13 -0
- package/dist/interfaces/rest/schemas/orders.js +2 -2
- package/dist/interfaces/rest/schemas/responses.d.ts +34 -0
- package/dist/interfaces/rest/schemas/responses.d.ts.map +1 -1
- package/dist/kernel/database/scoped-db.d.ts +2 -1
- package/dist/kernel/database/scoped-db.d.ts.map +1 -1
- package/dist/kernel/database/scoped-db.js +62 -1
- package/dist/kernel/plugin/manifest.d.ts +3 -0
- package/dist/kernel/plugin/manifest.d.ts.map +1 -1
- package/dist/modules/analytics/drizzle-adapter.d.ts.map +1 -1
- package/dist/modules/analytics/drizzle-adapter.js +16 -3
- package/dist/modules/cart/service.d.ts.map +1 -1
- package/dist/modules/cart/service.js +3 -2
- package/dist/modules/catalog/entity-service.d.ts.map +1 -1
- package/dist/modules/catalog/entity-service.js +34 -2
- package/dist/modules/customers/service.d.ts.map +1 -1
- package/dist/modules/customers/service.js +6 -0
- package/dist/modules/orders/schema.d.ts +17 -0
- package/dist/modules/orders/schema.d.ts.map +1 -1
- package/dist/modules/orders/schema.js +4 -0
- package/dist/modules/orders/service.d.ts +16 -2
- package/dist/modules/orders/service.d.ts.map +1 -1
- package/dist/modules/orders/service.js +223 -26
- package/dist/modules/orders/stale-order-cleanup.d.ts.map +1 -1
- package/dist/modules/orders/stale-order-cleanup.js +13 -1
- package/dist/modules/pricing/service.d.ts.map +1 -1
- package/dist/modules/pricing/service.js +5 -5
- package/dist/test-utils/create-test-config.d.ts.map +1 -1
- package/dist/test-utils/create-test-config.js +2 -0
- package/dist/test-utils/order-test-helpers.d.ts +12 -0
- package/dist/test-utils/order-test-helpers.d.ts.map +1 -0
- package/dist/test-utils/order-test-helpers.js +18 -0
- package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -1
- package/dist/test-utils/rest-api-test-utils.js +1 -0
- package/dist/test-utils/test-actors.js +1 -1
- package/dist/testing.d.ts +1 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -0
- package/package.json +1 -1
- package/src/auth/middleware.ts +26 -7
- package/src/auth/setup.ts +10 -4
- package/src/config/defaults.ts +2 -0
- package/src/config/types.ts +9 -0
- package/src/hooks/checkout-completion.ts +22 -16
- package/src/hooks/checkout.ts +11 -8
- package/src/interfaces/rest/routes/admin/staff.ts +45 -3
- package/src/interfaces/rest/routes/checkout.ts +93 -28
- package/src/interfaces/rest/routes/inventory.ts +14 -0
- package/src/interfaces/rest/routes/orders.ts +11 -0
- package/src/interfaces/rest/schemas/orders.ts +2 -2
- package/src/kernel/database/scoped-db.ts +70 -1
- package/src/kernel/plugin/manifest.ts +3 -0
- package/src/modules/analytics/drizzle-adapter.ts +19 -3
- package/src/modules/cart/service.ts +3 -2
- package/src/modules/catalog/entity-service.ts +28 -1
- package/src/modules/customers/service.ts +6 -0
- package/src/modules/orders/schema.ts +4 -0
- package/src/modules/orders/service.ts +408 -64
- package/src/modules/orders/stale-order-cleanup.ts +18 -4
- package/src/modules/pricing/service.ts +5 -6
- package/src/test-utils/create-test-config.ts +2 -0
- package/src/test-utils/order-test-helpers.ts +26 -0
- package/src/test-utils/rest-api-test-utils.ts +1 -0
- package/src/test-utils/test-actors.ts +1 -1
- package/src/testing.ts +1 -0
|
@@ -64,6 +64,7 @@ export async function createTestConfig(
|
|
|
64
64
|
provider: "postgresql",
|
|
65
65
|
},
|
|
66
66
|
auth: {
|
|
67
|
+
allowTestActor: true,
|
|
67
68
|
defaultOrganizationId: "org_default",
|
|
68
69
|
requireEmailVerification: false,
|
|
69
70
|
apiKeys: { enabled: true, defaultPermissions: ["catalog:read"] },
|
|
@@ -81,6 +82,7 @@ export async function createTestConfig(
|
|
|
81
82
|
"orders:create",
|
|
82
83
|
"orders:read",
|
|
83
84
|
"orders:update",
|
|
85
|
+
"orders:manage",
|
|
84
86
|
"cart:create",
|
|
85
87
|
"cart:update",
|
|
86
88
|
"customers:update:self",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { eq } from "drizzle-orm";
|
|
2
|
+
import { orders } from "../modules/orders/schema.js";
|
|
3
|
+
import type { Kernel } from "../runtime/kernel.js";
|
|
4
|
+
import type { DrizzleDatabase } from "../kernel/database/drizzle-db.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Mark an order as paid (captured) for tests.
|
|
8
|
+
*
|
|
9
|
+
* Refund and return flows require a paid order — a refund moves collected money,
|
|
10
|
+
* and the order primitive rejects refunds on unpaid/pending orders. There is no
|
|
11
|
+
* public "set captured amount" service (capture() needs a live payment intent),
|
|
12
|
+
* so tests set the column here through a single typed helper rather than
|
|
13
|
+
* scattering raw SQL / `as any` casts across test files.
|
|
14
|
+
*/
|
|
15
|
+
export async function markOrderPaidForTest(
|
|
16
|
+
kernel: Kernel,
|
|
17
|
+
orderId: string,
|
|
18
|
+
amountCaptured: number,
|
|
19
|
+
paymentIntentId?: string,
|
|
20
|
+
): Promise<void> {
|
|
21
|
+
const db = kernel.database.db as DrizzleDatabase;
|
|
22
|
+
await db
|
|
23
|
+
.update(orders)
|
|
24
|
+
.set({ amountCaptured, ...(paymentIntentId ? { paymentIntentId } : {}) })
|
|
25
|
+
.where(eq(orders.id, orderId));
|
|
26
|
+
}
|
|
@@ -32,7 +32,7 @@ export const testStaffActor: Actor = {
|
|
|
32
32
|
role: "staff",
|
|
33
33
|
permissions: [
|
|
34
34
|
"catalog:read", "catalog:create", "catalog:update",
|
|
35
|
-
"inventory:adjust", "orders:read", "orders:create", "orders:update",
|
|
35
|
+
"inventory:adjust", "orders:read", "orders:create", "orders:update", "orders:manage",
|
|
36
36
|
],
|
|
37
37
|
};
|
|
38
38
|
|
package/src/testing.ts
CHANGED
|
@@ -16,6 +16,7 @@ export {
|
|
|
16
16
|
jsonHeaders,
|
|
17
17
|
} from "./test-utils/test-actors.js";
|
|
18
18
|
export { beforeHook, afterHook } from "./test-utils/typed-hooks.js";
|
|
19
|
+
export { markOrderPaidForTest } from "./test-utils/order-test-helpers.js";
|
|
19
20
|
|
|
20
21
|
// Actor type re-export for plugin tests that build custom test actors.
|
|
21
22
|
export type { Actor } from "./auth/types.js";
|