Files
renovate/lib/modules/datasource/cpan/schema.spec.ts
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00

76 lines
2.1 KiB
TypeScript

import { MetaCpanApiFileSearchResponse } from './schema.ts';
describe('modules/datasource/cpan/schema', () => {
describe('MetaCpanApiFileSearchResponse', () => {
it('filters out entries with empty module arrays', () => {
const response = {
hits: {
hits: [
{
_source: {
module: [],
distribution: 'Test-Package',
date: '2023-01-01T00:00:00',
deprecated: false,
maturity: 'released',
status: 'latest',
},
},
],
},
};
const result = MetaCpanApiFileSearchResponse.parse(response);
expect(result).toEqual([]);
});
it('filters out entries where module has no version', () => {
const response = {
hits: {
hits: [
{
_source: {
module: [{ name: 'Test::Module', version: '' }],
distribution: 'Test-Package',
date: '2023-01-01T00:00:00',
deprecated: false,
maturity: 'released',
status: 'latest',
},
},
],
},
};
const result = MetaCpanApiFileSearchResponse.parse(response);
expect(result).toEqual([]);
});
it('includes valid entries', () => {
const response = {
hits: {
hits: [
{
_source: {
module: [{ name: 'Test::Module', version: '1.0' }],
distribution: 'Test-Package',
date: '2023-01-01T00:00:00',
deprecated: false,
maturity: 'released',
status: 'latest',
},
},
],
},
};
const result = MetaCpanApiFileSearchResponse.parse(response);
expect(result).toHaveLength(1);
expect(result[0]).toMatchObject({
version: '1.0',
distribution: 'Test-Package',
isDeprecated: false,
isStable: true,
isLatest: true,
});
});
});
});