Files
renovate/lib/modules/datasource/puppet-forge/schema.spec.ts
Robert Waffen 54407b683d fix(datasource/puppet-forge): filter out deleted forge releases so that they don't count as updates anymore (#43906)
* fix(datasource/puppet-forge): filter out deleted forge releases so that they don't count as updates anymore

Signed-off-by: Robert Waffen <rw@betadots.de>

* Update lib/modules/datasource/puppet-forge/schema.ts

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>

* Update lib/modules/datasource/puppet-forge/schema.ts

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

* fix: add missing import for isTruthy

Signed-off-by: Robert Waffen <rw@betadots.de>
Co-authored-by: ChatGPT Codex <codex@openai.com>

* fix: uses Nullish zod helper

Signed-off-by: Robert Waffen <rw@betadots.de>
Co-authored-by: ChatGPT Codex <codex@openai.com>

---------

Signed-off-by: Robert Waffen <rw@betadots.de>
Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: ChatGPT Codex <codex@openai.com>
2026-07-09 19:18:43 +00:00

65 lines
2.2 KiB
TypeScript

import { PuppetModule, PuppetReleaseAbbreviated } from './schema.ts';
describe('modules/datasource/puppet-forge/schema', () => {
describe('PuppetReleaseAbbreviatedSchema', () => {
it('maps file_uri and created_at when present', () => {
const result = PuppetReleaseAbbreviated.parse({
version: '1.0.0',
created_at: '2021-10-11 07:47:24 -0700',
file_uri: '/v3/files/puppetlabs-apache-1.0.0.tar.gz',
});
expect(result).toEqual({
version: '1.0.0',
downloadUrl: '/v3/files/puppetlabs-apache-1.0.0.tar.gz',
releaseTimestamp: '2021-10-11T14:47:24.000Z',
});
});
it('omits download and timestamp when file_uri and created_at are null', () => {
const result = PuppetReleaseAbbreviated.parse({
version: '1.0.0',
created_at: null,
deleted_at: null,
file_uri: null,
});
expect(result).toEqual({ version: '1.0.0' });
});
it('returns null for deleted releases', () => {
const result = PuppetReleaseAbbreviated.parse({
version: '1.0.0',
created_at: '2021-10-11 07:47:24 -0700',
deleted_at: '2021-10-12 07:47:24 -0700',
file_uri: '/v3/files/puppetlabs-apache-1.0.0.tar.gz',
});
expect(result).toBeNull();
});
});
describe('PuppetModuleSchema', () => {
it('maps homepage and deprecation message when present', () => {
const result = PuppetModule.parse({
releases: [
{ version: '2.0.0', deleted_at: '2021-10-12 07:47:24 -0700' },
{ version: '1.0.0', deleted_at: null },
],
homepage_url: 'https://github.com/puppetlabs/puppetlabs-apache',
deprecated_for: 'use another module ...',
});
expect(result).toEqual({
releases: [{ version: '1.0.0' }],
homepage: 'https://github.com/puppetlabs/puppetlabs-apache',
deprecationMessage: 'use another module ...',
});
});
it('omits homepage and deprecation message when null and defaults releases', () => {
const result = PuppetModule.parse({
homepage_url: null,
deprecated_for: null,
});
expect(result).toEqual({ releases: [] });
});
});
});