@commercejs/adapter-salla 0.1.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.
Files changed (73) hide show
  1. package/dist/__tests__/adapter.contract.test.d.ts +2 -0
  2. package/dist/__tests__/adapter.contract.test.d.ts.map +1 -0
  3. package/dist/__tests__/adapter.contract.test.js +228 -0
  4. package/dist/__tests__/adapter.contract.test.js.map +1 -0
  5. package/dist/__tests__/mappers.test.d.ts +2 -0
  6. package/dist/__tests__/mappers.test.d.ts.map +1 -0
  7. package/dist/__tests__/mappers.test.js +512 -0
  8. package/dist/__tests__/mappers.test.js.map +1 -0
  9. package/dist/adapter.d.ts +85 -0
  10. package/dist/adapter.d.ts.map +1 -0
  11. package/dist/adapter.js +492 -0
  12. package/dist/adapter.js.map +1 -0
  13. package/dist/client.d.ts +43 -0
  14. package/dist/client.d.ts.map +1 -0
  15. package/dist/client.js +162 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +7 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mappers/brand.d.ts +4 -0
  22. package/dist/mappers/brand.d.ts.map +1 -0
  23. package/dist/mappers/brand.js +20 -0
  24. package/dist/mappers/brand.js.map +1 -0
  25. package/dist/mappers/category.d.ts +5 -0
  26. package/dist/mappers/category.d.ts.map +1 -0
  27. package/dist/mappers/category.js +25 -0
  28. package/dist/mappers/category.js.map +1 -0
  29. package/dist/mappers/country.d.ts +4 -0
  30. package/dist/mappers/country.d.ts.map +1 -0
  31. package/dist/mappers/country.js +14 -0
  32. package/dist/mappers/country.js.map +1 -0
  33. package/dist/mappers/customer.d.ts +7 -0
  34. package/dist/mappers/customer.d.ts.map +1 -0
  35. package/dist/mappers/customer.js +45 -0
  36. package/dist/mappers/customer.js.map +1 -0
  37. package/dist/mappers/index.d.ts +12 -0
  38. package/dist/mappers/index.d.ts.map +1 -0
  39. package/dist/mappers/index.js +15 -0
  40. package/dist/mappers/index.js.map +1 -0
  41. package/dist/mappers/location.d.ts +4 -0
  42. package/dist/mappers/location.d.ts.map +1 -0
  43. package/dist/mappers/location.js +44 -0
  44. package/dist/mappers/location.js.map +1 -0
  45. package/dist/mappers/order-status.d.ts +7 -0
  46. package/dist/mappers/order-status.d.ts.map +1 -0
  47. package/dist/mappers/order-status.js +38 -0
  48. package/dist/mappers/order-status.js.map +1 -0
  49. package/dist/mappers/order.d.ts +5 -0
  50. package/dist/mappers/order.d.ts.map +1 -0
  51. package/dist/mappers/order.js +141 -0
  52. package/dist/mappers/order.js.map +1 -0
  53. package/dist/mappers/payment.d.ts +5 -0
  54. package/dist/mappers/payment.d.ts.map +1 -0
  55. package/dist/mappers/payment.js +20 -0
  56. package/dist/mappers/payment.js.map +1 -0
  57. package/dist/mappers/product.d.ts +5 -0
  58. package/dist/mappers/product.d.ts.map +1 -0
  59. package/dist/mappers/product.js +143 -0
  60. package/dist/mappers/product.js.map +1 -0
  61. package/dist/mappers/review.d.ts +5 -0
  62. package/dist/mappers/review.d.ts.map +1 -0
  63. package/dist/mappers/review.js +17 -0
  64. package/dist/mappers/review.js.map +1 -0
  65. package/dist/mappers/shipping.d.ts +5 -0
  66. package/dist/mappers/shipping.d.ts.map +1 -0
  67. package/dist/mappers/shipping.js +20 -0
  68. package/dist/mappers/shipping.js.map +1 -0
  69. package/dist/types.d.ts +472 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +5 -0
  72. package/dist/types.js.map +1 -0
  73. package/package.json +32 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter.contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.contract.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/adapter.contract.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,228 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Adapter contract test — validates SallaAdapter against CommerceAdapter
3
+ // ---------------------------------------------------------------------------
4
+ // Tests that:
5
+ // 1. The adapter implements all required methods
6
+ // 2. Supported methods don't throw NOT_SUPPORTED
7
+ // 3. Unsupported methods throw CommerceError with NOT_SUPPORTED code
8
+ // 4. Capabilities array matches actual behavior
9
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
10
+ import { SallaAdapter } from '../adapter.js';
11
+ import { CommerceError } from '@commercejs/types';
12
+ // Mock SallaClient to avoid real API calls
13
+ // Return minimal but valid Salla-shaped data so mappers don't crash
14
+ const mockProduct = {
15
+ id: 1, sku: null, name: 'Mock', description: null, short_description: null,
16
+ slug: 'mock', status: 'sale', type: 'product',
17
+ price: { amount: 10, currency: 'SAR' }, sale_price: null,
18
+ regular_price: { amount: 10, currency: 'SAR' },
19
+ quantity: 1, max_quantity_per_order: null, min_quantity_per_order: null,
20
+ images: [], categories: [], options: [], skus: [], tags: [],
21
+ brand: null, rating: null, weight: null, weight_unit: null,
22
+ require_shipping: true, urls: { customer: '', admin: '' },
23
+ promotion: null, has_options: false, is_available: true,
24
+ created_at: '2025-01-01T00:00:00Z', updated_at: '2025-01-01T00:00:00Z',
25
+ metadata: null,
26
+ };
27
+ const mockOrder = {
28
+ id: 1, reference_id: '1',
29
+ status: { id: 1, name: 'Pending', slug: 'pending', customized: null },
30
+ payment_method: null, currency: 'SAR',
31
+ amounts: {
32
+ total: { amount: 10, currency: 'SAR' },
33
+ sub_total: { amount: 10, currency: 'SAR' },
34
+ shipping_cost: { amount: 0, currency: 'SAR' },
35
+ cash_on_delivery: { amount: 0, currency: 'SAR' },
36
+ tax: { percent: '0', amount: { amount: 0, currency: 'SAR' } },
37
+ discounts: [],
38
+ },
39
+ items: [], customer: null, shipping: null, coupon: null, note: null,
40
+ urls: { customer: '', admin: '' },
41
+ created_at: '2025-01-01T00:00:00Z', updated_at: '2025-01-01T00:00:00Z',
42
+ date: { date: '2025-01-01 00:00:00', timezone_type: 3, timezone: 'UTC' },
43
+ };
44
+ const mockOrderStatus = {
45
+ id: 1, name: 'In Progress', type: 'original', slug: 'in_progress',
46
+ message: null, color: '#3498db', icon: 'fas fa-spinner',
47
+ sort: 3, is_active: true, original: null, parent: null, children: null,
48
+ };
49
+ const mockOrderHistory = {
50
+ id: 100, action: 'Order created', note: null,
51
+ created_at: '2025-01-01T00:00:00Z',
52
+ };
53
+ vi.mock('../client.js', () => {
54
+ return {
55
+ SallaClient: class MockSallaClient {
56
+ get = vi.fn().mockImplementation((path) => {
57
+ if (path.startsWith('/products/'))
58
+ return Promise.resolve({ data: mockProduct });
59
+ if (path === '/orders/statuses')
60
+ return Promise.resolve({ data: [mockOrderStatus] });
61
+ if (path === '/orders/histories')
62
+ return Promise.resolve({ data: [mockOrderHistory] });
63
+ if (path.startsWith('/orders/'))
64
+ return Promise.resolve({ data: mockOrder });
65
+ if (path === '/store/info')
66
+ return Promise.resolve({ data: { name: 'Mock', description: null, logo: null } });
67
+ if (path === '/currencies')
68
+ return Promise.resolve({ data: [] });
69
+ return Promise.resolve({ data: [] });
70
+ });
71
+ post = vi.fn().mockImplementation((_path) => {
72
+ return Promise.resolve({ data: mockOrder });
73
+ });
74
+ put = vi.fn().mockResolvedValue({ data: {} });
75
+ delete = vi.fn().mockResolvedValue({ data: {} });
76
+ paginated = vi.fn().mockResolvedValue({
77
+ data: [],
78
+ total: 0,
79
+ page: 1,
80
+ perPage: 10,
81
+ totalPages: 1,
82
+ });
83
+ },
84
+ };
85
+ });
86
+ describe('SallaAdapter Contract', () => {
87
+ let adapter;
88
+ beforeEach(() => {
89
+ adapter = new SallaAdapter({
90
+ accessToken: 'test-token',
91
+ locale: 'en',
92
+ });
93
+ });
94
+ describe('identity', () => {
95
+ it('should have name "salla"', () => {
96
+ expect(adapter.name).toBe('salla');
97
+ });
98
+ it('should declare capabilities', () => {
99
+ expect(adapter.capabilities).toBeDefined();
100
+ expect(Array.isArray(adapter.capabilities)).toBe(true);
101
+ expect(adapter.capabilities.length).toBeGreaterThan(0);
102
+ });
103
+ it('should include core domains in capabilities', () => {
104
+ expect(adapter.capabilities).toContain('catalog');
105
+ expect(adapter.capabilities).toContain('store');
106
+ expect(adapter.capabilities).toContain('orders');
107
+ });
108
+ });
109
+ describe('CatalogAdapter methods', () => {
110
+ it('getProduct should be callable', async () => {
111
+ // Should not throw NOT_SUPPORTED
112
+ await expect(adapter.getProduct({ id: '123' })).resolves.toBeDefined();
113
+ });
114
+ it('getProducts should be callable', async () => {
115
+ const result = await adapter.getProducts({ query: 'test' });
116
+ expect(result).toHaveProperty('products');
117
+ expect(result).toHaveProperty('facets');
118
+ });
119
+ it('getCategories should be callable', async () => {
120
+ const result = await adapter.getCategories();
121
+ expect(Array.isArray(result)).toBe(true);
122
+ });
123
+ });
124
+ describe('OrderAdapter methods', () => {
125
+ it('createOrder should be callable', async () => {
126
+ await expect(adapter.createOrder({
127
+ items: [{ productId: '1', quantity: 1, unitPrice: { amount: 100, currency: 'SAR', formatted: '100 SAR' } }],
128
+ shippingAddress: {
129
+ firstName: 'Test',
130
+ lastName: 'User',
131
+ phone: null,
132
+ street: '123 Main St',
133
+ street2: null,
134
+ city: 'Riyadh',
135
+ state: null,
136
+ country: 'SA',
137
+ postalCode: '12345',
138
+ district: null,
139
+ nationalAddress: null,
140
+ additionalNumber: null,
141
+ },
142
+ receiver: { firstName: 'Test', lastName: 'User', email: 'test@test.com' },
143
+ })).resolves.toBeDefined();
144
+ });
145
+ it('getCustomerOrders should be callable', async () => {
146
+ const result = await adapter.getCustomerOrders();
147
+ expect(result).toHaveProperty('items');
148
+ });
149
+ it('getOrder should be callable', async () => {
150
+ await expect(adapter.getOrder('123')).resolves.toBeDefined();
151
+ });
152
+ it('getOrderStatuses should return array', async () => {
153
+ const result = await adapter.getOrderStatuses();
154
+ expect(Array.isArray(result)).toBe(true);
155
+ expect(result.length).toBeGreaterThan(0);
156
+ expect(result[0]).toHaveProperty('slug');
157
+ expect(result[0]).toHaveProperty('color');
158
+ expect(result[0]).toHaveProperty('isActive');
159
+ });
160
+ it('updateOrderStatus should be callable', async () => {
161
+ await expect(adapter.updateOrderStatus('123', { status: 'in_progress' })).resolves.toBeUndefined();
162
+ });
163
+ it('cancelOrder should be callable', async () => {
164
+ await expect(adapter.cancelOrder('123')).resolves.toBeUndefined();
165
+ });
166
+ it('duplicateOrder should return an order', async () => {
167
+ const result = await adapter.duplicateOrder('123');
168
+ expect(result).toHaveProperty('id');
169
+ expect(result).toHaveProperty('orderNumber');
170
+ });
171
+ it('getOrderHistory should return array', async () => {
172
+ const result = await adapter.getOrderHistory('123');
173
+ expect(Array.isArray(result)).toBe(true);
174
+ expect(result.length).toBeGreaterThan(0);
175
+ expect(result[0]).toHaveProperty('action');
176
+ expect(result[0]).toHaveProperty('orderId', '123');
177
+ });
178
+ });
179
+ describe('StoreAdapter methods', () => {
180
+ it('getStoreInfo should be callable', async () => {
181
+ // Mock the parallel calls getStoreInfo makes
182
+ await expect(adapter.getStoreInfo()).resolves.toBeDefined();
183
+ });
184
+ });
185
+ describe('NOT_SUPPORTED methods', () => {
186
+ const unsupportedMethods = [
187
+ ['createCart', () => adapter.createCart()],
188
+ ['getCart', () => adapter.getCart('123')],
189
+ ['addToCart', () => adapter.addToCart('123', { productId: '1', quantity: 1 })],
190
+ ['updateCartItem', () => adapter.updateCartItem('123', '1', 2)],
191
+ ['removeFromCart', () => adapter.removeFromCart('123', '1')],
192
+ ['applyCoupon', () => adapter.applyCoupon('123', 'CODE')],
193
+ ['removeCoupon', () => adapter.removeCoupon('123')],
194
+ ['setShippingAddress', () => adapter.setShippingAddress('123', {})],
195
+ ['setBillingAddress', () => adapter.setBillingAddress('123', {})],
196
+ ['setShippingMethod', () => adapter.setShippingMethod('123', 'method1')],
197
+ ['setPaymentMethod', () => adapter.setPaymentMethod('123', 'method1')],
198
+ ['placeOrder', () => adapter.placeOrder('123')],
199
+ ['login', () => adapter.login('test@test.com', 'pass')],
200
+ ['getWishlist', () => adapter.getWishlist()],
201
+ ['addToWishlist', () => adapter.addToWishlist('123')],
202
+ ['removeFromWishlist', () => adapter.removeFromWishlist('123')],
203
+ ];
204
+ it.each(unsupportedMethods)('%s should throw CommerceError with NOT_SUPPORTED code', async (name, method) => {
205
+ await expect(method()).rejects.toThrow(CommerceError);
206
+ try {
207
+ await method();
208
+ }
209
+ catch (err) {
210
+ expect(err).toBeInstanceOf(CommerceError);
211
+ expect(err.code).toBe('NOT_SUPPORTED');
212
+ expect(err.statusCode).toBe(501);
213
+ }
214
+ });
215
+ });
216
+ describe('capabilities consistency', () => {
217
+ it('should not include "cart" since cart is not supported', () => {
218
+ expect(adapter.capabilities).not.toContain('cart');
219
+ });
220
+ it('should not include "checkout" since full checkout is not supported', () => {
221
+ expect(adapter.capabilities).not.toContain('checkout');
222
+ });
223
+ it('should not include "wishlist" since wishlist is not supported', () => {
224
+ expect(adapter.capabilities).not.toContain('wishlist');
225
+ });
226
+ });
227
+ });
228
+ //# sourceMappingURL=adapter.contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.contract.test.js","sourceRoot":"","sources":["../../src/__tests__/adapter.contract.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mappers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/mappers.test.ts"],"names":[],"mappings":""}