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)
})