feat: add expiring reset card wallet
This commit is contained in:
@@ -7,10 +7,12 @@ import {
|
||||
fetchMyWorksProjects,
|
||||
fetchWorksAsset,
|
||||
fetchWorksAssets,
|
||||
fetchWorksResetCards,
|
||||
fetchWorksTokenPointBalance,
|
||||
fetchWorksProjectVersions,
|
||||
fetchWorksProjects,
|
||||
publishWorksProjectSource,
|
||||
redeemWorksResetCard,
|
||||
toPlazaCard,
|
||||
WorksSquareApiError,
|
||||
type ProjectPublic,
|
||||
@@ -251,6 +253,43 @@ describe('works square client', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('lists and redeems granted reset cards through Main-owned billing routes', async () => {
|
||||
const availableCard = {
|
||||
id: 'card one',
|
||||
status: 'available' as const,
|
||||
granted_at: '2026-09-08T00:00:00Z',
|
||||
expires_at: '2099-09-15T00:00:00Z',
|
||||
redeemed_at: null,
|
||||
redeemed_cycle_id: null,
|
||||
};
|
||||
const redeemedCard = {
|
||||
...availableCard,
|
||||
status: 'redeemed' as const,
|
||||
redeemed_at: '2026-09-09T00:00:00Z',
|
||||
redeemed_cycle_id: 'cycle-new',
|
||||
};
|
||||
hostApiFetchMock
|
||||
.mockResolvedValueOnce({ success: true, cards: [availableCard] })
|
||||
.mockResolvedValueOnce({ success: true, card: redeemedCard });
|
||||
|
||||
await expect(fetchWorksResetCards('access-token')).resolves.toEqual([availableCard]);
|
||||
await expect(redeemWorksResetCard('access-token', availableCard.id)).resolves.toEqual(redeemedCard);
|
||||
|
||||
expect(hostApiFetchMock).toHaveBeenNthCalledWith(
|
||||
1,
|
||||
'/api/works/billing/reset-cards',
|
||||
{ headers: { 'X-NianCode-Access-Token': 'access-token' } },
|
||||
);
|
||||
expect(hostApiFetchMock).toHaveBeenNthCalledWith(
|
||||
2,
|
||||
'/api/works/billing/reset-cards/card%20one/redeem',
|
||||
{
|
||||
method: 'POST',
|
||||
headers: { 'X-NianCode-Access-Token': 'access-token' },
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
it('loads the current user project status with versions', async () => {
|
||||
const status = {
|
||||
project: {
|
||||
|
||||
Reference in New Issue
Block a user