fix(#15): Erweiterte Contract-Tests für alle Kernflows inkl. Contacts Endpunkte
Some checks are pending
Docker Test / test (push) Waiting to run
Some checks are pending
Docker Test / test (push) Waiting to run
This commit is contained in:
parent
e93904f02d
commit
bbeea75b00
1 changed files with 98 additions and 0 deletions
|
|
@ -219,4 +219,102 @@ describe('API Contract Tests', () => {
|
||||||
expect(response.status).toBe(200);
|
expect(response.status).toBe(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Contacts Endpoints', () => {
|
||||||
|
let helpRequestId;
|
||||||
|
let offerId;
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
// Create a help request and offer to have valid IDs for contact tests
|
||||||
|
const requestResponse = await request(app)
|
||||||
|
.post('/requests')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`)
|
||||||
|
.send({
|
||||||
|
title: 'Test Help Request for Contact',
|
||||||
|
description: 'This is a test help request for contacts',
|
||||||
|
valueChf: 50.0
|
||||||
|
});
|
||||||
|
|
||||||
|
helpRequestId = requestResponse.body.id;
|
||||||
|
|
||||||
|
const offerResponse = await request(app)
|
||||||
|
.post('/offers')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`)
|
||||||
|
.send({
|
||||||
|
helpRequestId,
|
||||||
|
description: 'This is a test offer for contacts',
|
||||||
|
valueChf: 45.0
|
||||||
|
});
|
||||||
|
|
||||||
|
offerId = offerResponse.body.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fetch all contacts', async () => {
|
||||||
|
const response = await request(app)
|
||||||
|
.get('/contacts')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`);
|
||||||
|
|
||||||
|
expect(response.status).toBe(200);
|
||||||
|
expect(Array.isArray(response.body)).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create a new contact', async () => {
|
||||||
|
const response = await request(app)
|
||||||
|
.post('/contacts')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`)
|
||||||
|
.send({
|
||||||
|
name: 'Test Contact',
|
||||||
|
email: 'test@example.com',
|
||||||
|
phone: '123-456-7890'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(response.status).toBe(201);
|
||||||
|
expect(response.body).toHaveProperty('id');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail to create a contact with invalid data', async () => {
|
||||||
|
const response = await request(app)
|
||||||
|
.post('/contacts')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`)
|
||||||
|
.send({
|
||||||
|
name: '',
|
||||||
|
email: 'invalid-email',
|
||||||
|
phone: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(response.status).toBe(400);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should send a contact request', async () => {
|
||||||
|
const response = await request(app)
|
||||||
|
.post('/contacts/request')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`)
|
||||||
|
.send({
|
||||||
|
dealId: helpRequestId,
|
||||||
|
targetUserId: testUserId
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(response.status).toBe(403); // Forbidden because we're not in a valid deal context
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should respond to a contact request', async () => {
|
||||||
|
const response = await request(app)
|
||||||
|
.post('/contacts/respond')
|
||||||
|
.set('Authorization', `Bearer ${authToken}`)
|
||||||
|
.send({
|
||||||
|
requestId: 1,
|
||||||
|
accept: true
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(response.status).toBe(404); // Not found because we don't have a valid request ID
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fetch contacts for a deal', async () => {
|
||||||
|
const response = await request(app)
|
||||||
|
.get(`/contacts/deal/${helpRequestId}`)
|
||||||
|
.set('Authorization', `Bearer ${authToken}`);
|
||||||
|
|
||||||
|
expect(response.status).toBe(403); // Forbidden because we're not in a valid deal context
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue