@furystack/rest-service
Version:
Repository implementation for FuryStack
36 lines • 1.65 kB
JavaScript
import { usingAsync } from '@furystack/utils';
import { Injector } from '@furystack/inject';
import { createDeleteEndpoint } from './create-delete-endpoint.js';
import { MockClass, setupContext } from './utils.js';
import { useRestService } from '../helpers.js';
import { getDataSetFor } from '@furystack/repository';
import { describe, it, expect } from 'vitest';
import { getPort } from '@furystack/core/port-generator';
describe('createDeleteEndpoint', () => {
it('Should delete the entity and report the success', async () => {
await usingAsync(new Injector(), async (i) => {
const port = getPort();
setupContext(i);
await useRestService({
injector: i,
root: '/api',
port,
api: {
DELETE: {
'/:id': createDeleteEndpoint({ model: MockClass, primaryKey: 'id' }),
},
},
});
await getDataSetFor(i, MockClass, 'id').add(i, { id: 'mock', value: 'mock' });
const countBeforeDelete = await getDataSetFor(i, MockClass, 'id').count(i);
expect(countBeforeDelete).toBe(1);
const response = await fetch(`http://127.0.0.1:${port}/api/mock`, { method: 'DELETE' });
expect(response.status).toBe(204);
const txt = await response.text();
expect(txt).toBe('');
const countAfterDelete = await getDataSetFor(i, MockClass, 'id').count(i);
expect(countAfterDelete).toBe(0);
});
});
});
//# sourceMappingURL=create-delete-endpoint.spec.js.map