Files
bigcapital/packages/server/test/inventory-adjustment.e2e-spec.ts
Ahmed Bouhuolia 2bbc154f18 wip
2026-01-15 22:04:51 +02:00

125 lines
4.0 KiB
TypeScript

import * as request from 'supertest';
import { faker } from '@faker-js/faker';
import { app, AuthorizationHeader, orgainzationId } from './init-app-test';
export const createInventoryAdjustment = ({ itemId }) => ({
date: '2020-01-01',
type: 'increment',
adjustmentAccountId: 1001,
reason: faker.lorem.sentence(),
description: faker.lorem.paragraph(),
referenceNo: faker.string.alphanumeric(10),
itemId,
quantity: faker.number.int({ min: 1, max: 100 }),
cost: faker.number.float({ min: 1, max: 1000 }),
publish: true,
warehouseId: 1,
branchId: 1,
});
const makeItemRequest = () => ({
name: faker.commerce.productName(),
type: 'inventory',
inventory_account_id: 1007,
});
describe('Inventory Adjustments (e2e)', () => {
it('/inventory-adjustments/quick (POST)', async () => {
const itemResponse = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest())
.expect(201);
const itemId = itemResponse.body.id;
return request(app.getHttpServer())
.post('/inventory-adjustments/quick')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(createInventoryAdjustment({ itemId }))
.expect(201);
});
it('/inventory-adjustments/:id (DELETE)', async () => {
const itemResponse = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest())
.expect(201);
const itemId = itemResponse.body.id;
const inventoryAdjustmentResponse = await request(app.getHttpServer())
.post('/inventory-adjustments/quick')
.set('Authorization', AuthorizationHeader)
.set('organization-id', orgainzationId)
.send(createInventoryAdjustment({ itemId }))
.expect(201);
const inventoryAdjustmentId = inventoryAdjustmentResponse.body.id;
return request(app.getHttpServer())
.delete(`/inventory-adjustments/${inventoryAdjustmentId}`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/inventory-adjustments/:id (GET)', async () => {
const itemResponse = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest())
.expect(201);
const itemId = itemResponse.body.id;
const inventoryAdjustmentResponse = await request(app.getHttpServer())
.post('/inventory-adjustments/quick')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(createInventoryAdjustment({ itemId }))
.expect(201);
const inventoryAdjustmentId = inventoryAdjustmentResponse.body.id;
return request(app.getHttpServer())
.get(`/inventory-adjustments/${inventoryAdjustmentId}`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
it('/inventory-adjustments/:id/publish (POST)', async () => {
const itemResponse = await request(app.getHttpServer())
.post('/items')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send(makeItemRequest())
.expect(201);
const itemId = itemResponse.body.id;
const inventoryAdjustmentResponse = await request(app.getHttpServer())
.post('/inventory-adjustments/quick')
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.send({
...createInventoryAdjustment({ itemId }),
publish: false,
})
.expect(201);
const inventoryAdjustmentId = inventoryAdjustmentResponse.body.id;
return request(app.getHttpServer())
.put(`/inventory-adjustments/${inventoryAdjustmentId}/publish`)
.set('organization-id', orgainzationId)
.set('Authorization', AuthorizationHeader)
.expect(200);
});
});