import assert from 'node:assert/strict' import test from 'node:test' import { canvaOperationNames, canvaOperations, isCanvaOperation, isMutation, } from './operations.ts' test('catalog covers every selected Canva OpenAPI operation', () => { assert.equal(canvaOperationNames.length, 48) assert.equal(new Set(canvaOperationNames).size, 48) }) test('every operation has a valid API path and method', () => { for (const operation of canvaOperationNames) { const definition = canvaOperations[operation] assert.match(definition.path, /^\/v1\//) assert.ok(['GET', 'POST', 'PATCH', 'DELETE'].includes(definition.method)) assert.equal(isMutation(operation), definition.method !== 'GET') assert.equal(isCanvaOperation(operation), true) } }) test('unknown operation names are rejected', () => { assert.equal(isCanvaOperation('remove-all-designs'), false) assert.equal(isCanvaOperation(null), false) }) test('deprecated and preview endpoints are identified', () => { assert.equal(canvaOperations.createcomment.deprecated, true) assert.equal(canvaOperations.createthread.preview, true) assert.equal('deprecated' in canvaOperations.createdesign, false) })