targo-backend/test/customers.e2e-spec.ts

126 lines
4.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// import * as request from 'supertest';
// import { INestApplication } from '@nestjs/common';
// import { createApp } from './utils/testing-app';
// import { PrismaService } from 'src/prisma/prisma.service';
// type CustomerPayload = {
// user_id?: string;
// first_name: string;
// last_name: string;
// email?: string;
// phone_number: number;
// residence?: string;
// invoice_id: number;
// };
// const BASE = '/customers';
// const uniqueEmail = () =>
// `customer+${Date.now()}_${Math.random().toString(36).slice(2,8)}@test.local`;
// const uniquePhone = () =>
// Math.floor(100_000_000 + Math.random() * 900_000_000);
// function makeCustomerPayload(overrides: Partial<CustomerPayload> = {}): CustomerPayload {
// return {
// first_name: 'Gandalf',
// last_name: 'TheGray',
// email: uniqueEmail(),
// phone_number: uniquePhone(),
// residence: '1 Ringbearers Way, Mount Doom, ME',
// invoice_id: Math.floor(1_000_000 + Math.random() * 9_000_000),
// ...overrides,
// };
// }
// describe('Customers (e2e) — autonome', () => {
// let app: INestApplication;
// let prisma: PrismaService;
// let createdId: number | null = null;
// beforeAll(async () => {
// app = await createApp();
// prisma = app.get(PrismaService);
// });
// afterAll(async () => {
// if (createdId) {
// try { await prisma.customers.delete({ where: { id: createdId } }); } catch {}
// }
// await app.close();
// await prisma.$disconnect();
// });
// it(`GET ${BASE} → 200 (array)`, async () => {
// const res = await request(app.getHttpServer()).get(BASE);
// expect(res.status).toBe(200);
// expect(Array.isArray(res.body)).toBe(true);
// });
// it(`POST ${BASE} (valid) → 201 puis GET /:id → 200`, async () => {
// const payload = makeCustomerPayload();
// const createRes = await request(app.getHttpServer()).post(BASE).send(payload);
// if (createRes.status !== 201) {
// console.log('Create error:', createRes.body || createRes.text);
// }
// expect(createRes.status).toBe(201);
// expect(createRes.body).toEqual(
// expect.objectContaining({
// id: expect.any(Number),
// user_id: expect.any(String),
// invoice_id: payload.invoice_id,
// })
// );
// expect(createRes.body.user_id).toMatch(/^[0-9a-fA-F-]{36}$/);
// createdId = createRes.body.id;
// const getRes = await request(app.getHttpServer()).get(`${BASE}/${createdId}`);
// expect(getRes.status).toBe(200);
// expect(getRes.body).toEqual(expect.objectContaining({ id: createdId }));
// });
// it(`PATCH ${BASE}/:id → 200 (first_name mis à jour)`, async () => {
// if (!createdId) {
// const create = await request(app.getHttpServer()).post(BASE).send(makeCustomerPayload());
// expect(create.status).toBe(201);
// createdId = create.body.id;
// }
// const patchRes = await request(app.getHttpServer())
// .patch(`${BASE}/${createdId}`)
// .send({ first_name: 'Mithrandir' });
// expect([200, 204]).toContain(patchRes.status);
// const getRes = await request(app.getHttpServer()).get(`${BASE}/${createdId}`);
// expect(getRes.status).toBe(200);
// expect(getRes.body.first_name ?? 'Mithrandir').toBe('Mithrandir');
// });
// it(`GET ${BASE}/:id (not found) → 404/400`, async () => {
// const res = await request(app.getHttpServer()).get(`${BASE}/999999`);
// expect([404, 400]).toContain(res.status);
// });
// it(`POST ${BASE} (invalid payload) → 400`, async () => {
// const res = await request(app.getHttpServer()).post(BASE).send({});
// expect(res.status).toBeGreaterThanOrEqual(400);
// expect(res.status).toBeLessThan(500);
// });
// it(`DELETE ${BASE}/:id → 200/204`, async () => {
// let id = createdId;
// if (!id) {
// const create = await request(app.getHttpServer()).post(BASE).send(makeCustomerPayload());
// expect(create.status).toBe(201);
// id = create.body.id;
// }
// const del = await request(app.getHttpServer()).delete(`${BASE}/${id}`);
// expect([200, 204]).toContain(del.status);
// if (createdId === id) createdId = null;
// });
// });