Files
bigcapital/packages/server/test/items.e2e-spec.ts
Ahmed Bouhuolia 3c1273becb wip
2026-01-12 01:04:28 +02:00

223 lines
6.7 KiB
TypeScript

import * as request from 'supertest';
import { faker } from '@faker-js/faker';
import {
app,
authenticationToken,
AuthorizationHeader,
orgainzationId,
} from './init-app-test';
const makeItemRequest = () => ({
name: faker.commerce.productName(),
type: 'service',
});
describe.only('Items (e2e)', () => {
it('/items (POST)', () => {
return request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest())
.expect(201);
});
it('/items/:id (PUT)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.put(`/items/${itemId}`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest())
.expect(200);
});
it('/items (GET)', () => {
return request(app.getHttpServer())
.get('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id (GET)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.get(`/items/${itemId}`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id/inactivate (PATCH)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.patch(`/items/${itemId}/inactivate`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id/activate (PATCH)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send({
...makeItemRequest(),
active: false,
});
const itemId = response.body.id;
return request(app.getHttpServer())
.patch(`/items/${itemId}/activate`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id (DELETE)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.delete(`/items/${itemId}`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id/invoices (GET)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.get(`/items/${itemId}/invoices`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id/bills (GET)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.get(`/items/${itemId}/bills`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id/estimates (GET)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.get(`/items/${itemId}/estimates`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/:id/receipts (GET)', async () => {
const response = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId = response.body.id;
return request(app.getHttpServer())
.get(`/items/${itemId}/receipts`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/items/validate-bulk-delete (POST)', async () => {
const response1 = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId1 = response1.body.id;
const response2 = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId2 = response2.body.id;
return request(app.getHttpServer())
.post('/items/validate-bulk-delete')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send({
ids: [itemId1, itemId2],
})
.expect(200);
});
it('/items/bulk-delete (POST)', async () => {
const response1 = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId1 = response1.body.id;
const response2 = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest());
const itemId2 = response2.body.id;
return request(app.getHttpServer())
.post('/items/bulk-delete')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send({
ids: [itemId1, itemId2],
})
.expect(200);
});
});