@nic0xflamel/lunarcrush-mcp-server
Version:
MCP server for the LunarCrush API (Enterprise)
94 lines • 3.31 kB
JavaScript
import { describe, it, expect } from 'vitest';
import { isFileUploadParameter } from '../file-upload';
describe('File Upload Detection', () => {
it('identifies file upload parameters in request bodies', () => {
const operation = {
operationId: 'uploadFile',
responses: {
'200': {
description: 'File uploaded successfully',
},
},
requestBody: {
content: {
'multipart/form-data': {
schema: {
type: 'object',
properties: {
file: {
type: 'string',
format: 'binary',
},
additionalInfo: {
type: 'string',
},
},
},
},
},
},
};
const fileParams = isFileUploadParameter(operation);
expect(fileParams).toEqual(['file']);
});
it('returns empty array for non-file upload operations', () => {
const operation = {
operationId: 'createUser',
responses: {
'200': {
description: 'User created successfully',
},
},
requestBody: {
content: {
'application/json': {
schema: {
type: 'object',
properties: {
name: {
type: 'string',
},
},
},
},
},
},
};
const fileParams = isFileUploadParameter(operation);
expect(fileParams).toEqual([]);
});
it('identifies array-based file upload parameters', () => {
const operation = {
operationId: 'uploadFiles',
responses: {
'200': {
description: 'Files uploaded successfully',
},
},
requestBody: {
content: {
'multipart/form-data': {
schema: {
type: 'object',
properties: {
files: {
type: 'array',
items: {
type: 'string',
format: 'binary',
},
},
description: {
type: 'string',
},
},
},
},
},
},
};
const fileParams = isFileUploadParameter(operation);
expect(fileParams).toEqual(['files']);
});
});
//# sourceMappingURL=file-upload.test.js.map