fix: add tests

This commit is contained in:
David Nguyen
2025-11-03 20:17:52 +11:00
parent 4a0425b120
commit c10c95ca00
10 changed files with 456 additions and 79 deletions

View File

@ -1,5 +1,7 @@
import { expect, test } from '@playwright/test';
import type { Team, User } from '@prisma/client';
import fs from 'node:fs';
import path from 'node:path';
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { createApiToken } from '@documenso/lib/server-only/public-api/create-api-token';
@ -2858,6 +2860,86 @@ test.describe('Document API V2', () => {
});
});
test.describe('Document create endpoint', () => {
test('should allow authorized access to document create endpoint', async ({ request }) => {
const payload = {
title: 'Test Document',
};
const formData = new FormData();
formData.append('payload', JSON.stringify(payload));
const pdfPath = path.join(__dirname, '../../../../../assets/example.pdf');
const pdfData = fs.existsSync(pdfPath) ? fs.readFileSync(pdfPath) : Buffer.from('%PDF-1.4\n');
formData.append('file', new File([pdfData], 'test.pdf', { type: 'application/pdf' }));
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/document/create`, {
headers: { Authorization: `Bearer ${tokenA}` },
multipart: formData,
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const data = await res.json();
expect(data.envelopeId).toBeDefined();
expect(data.id).toBeDefined();
const envelope = await prisma.envelope.findFirstOrThrow({
where: {
id: data.envelopeId,
},
include: {
envelopeItems: true,
},
});
expect(envelope?.title).toBe(payload.title);
expect(envelope.envelopeItems.length).toBe(1);
});
});
test.describe('Template create endpoint', () => {
test('should allow authorized access to template create endpoint', async ({ request }) => {
const payload = {
title: 'Test Template',
};
const formData = new FormData();
formData.append('payload', JSON.stringify(payload));
const pdfPath = path.join(__dirname, '../../../../../assets/example.pdf');
const pdfData = fs.existsSync(pdfPath) ? fs.readFileSync(pdfPath) : Buffer.from('%PDF-1.4\n');
formData.append('file', new File([pdfData], 'test.pdf', { type: 'application/pdf' }));
const res = await request.post(`${WEBAPP_BASE_URL}/api/v2-beta/template/create`, {
headers: { Authorization: `Bearer ${tokenA}` },
multipart: formData,
});
expect(res.ok()).toBeTruthy();
expect(res.status()).toBe(200);
const data = await res.json();
expect(data.envelopeId).toBeDefined();
expect(data.id).toBeDefined();
const envelope = await prisma.envelope.findFirstOrThrow({
where: {
id: data.envelopeId,
},
include: {
envelopeItems: true,
},
});
expect(envelope.title).toBe(payload.title);
expect(envelope.envelopeItems.length).toBe(1);
});
});
test.describe('Envelope API V2', () => {
let userA: User, teamA: Team, userB: User, teamB: Team, tokenA: string, tokenB: string;