Add support for custom repositories

This commit is contained in:
Florian Mueller
2023-12-21 00:04:50 +01:00
committed by Slawomir Jaranowski
parent 25432ff633
commit 879f94d6bf
7 changed files with 166 additions and 14 deletions

View File

@ -708,7 +708,7 @@ test('cleanup - not generated', () => {
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/Cleanup maven setings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml - file wasn\'t generated by action/)
expect.stringMatching(/Cleanup maven settings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml - file wasn\'t generated by action/)
])
);
})
@ -721,7 +721,7 @@ test('cleanup - not exist', () => {
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/::warning::Cleanup maven setings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml - file not exist/)
expect.stringMatching(/::warning::Cleanup maven settings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml - file not exist/)
])
);
})
@ -735,13 +735,13 @@ test('cleanup - ok', () => {
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/Cleanup maven setings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml - file was removed/)
expect.stringMatching(/Cleanup maven settings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml - file was removed/)
])
);
expect(fs.existsSync(settingsPath)).not.toBeTruthy();
})
test('genereate', () => {
test('generate', () => {
process.env['INPUT_SERVERS'] = '[{"id": "serverId", "username": "username", "password": "password"}]';
process.env['INPUT_PROPERTIES'] = '[{"prop1": "value1"}, {"prop2": "value2"}]'
@ -751,13 +751,13 @@ test('genereate', () => {
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/Prepare maven setings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml/),
expect.stringMatching(/Prepare maven settings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml/),
expect.stringMatching(/:save-state name=maven-settings::ok/)
])
);
})
test('genereate - skip', () => {
test('generate - skip', () => {
fs.closeSync(fs.openSync(settingsPath, 'w'));
@ -765,13 +765,13 @@ test('genereate - skip', () => {
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/Prepare maven setings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml/),
expect.stringMatching(/Prepare maven settings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml/),
expect.stringMatching(/::warning::maven settings.xml already exists - skip/)
])
);
})
test('genereate - override', () => {
test('generate - override', () => {
fs.closeSync(fs.openSync(settingsPath, 'w'));
process.env['INPUT_OVERRIDE'] = 'true';
@ -780,7 +780,7 @@ test('genereate - override', () => {
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/Prepare maven setings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml/),
expect.stringMatching(/Prepare maven settings: \..+[\/\\]{1,2}\.m2[\/\\]{1,2}settings.xml/),
expect.stringMatching(/maven settings.xml already exists - override/),
expect.stringMatching(/:save-state name=maven-settings::ok/)
])
@ -801,3 +801,59 @@ test('generate - custom path', () => {
expect(settingsStatus.isFile()).toBeTruthy();
expect(settingsStatus.size).toBeGreaterThan(0);
});
test('addCustomRepositories - one with snapshots one without', () => {
process.env['INPUT_REPOSITORIES'] = '[{"id":"repoId","name":"repoName","url":"url","snapshots":{"enabled":true}},{"id":"repoId2","url":"url2"}]'
const xml = stringAsXml('<profiles/>');
settings.fillRepositories(xml,'repositories');
const xmlStr = new XMLSerializer().serializeToString(xml);
expect(xmlStr).toBe(`<profiles>
<profile>
<id>_custom_repositories_</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories> <repository>
<id>repoId</id>
<name>repoName</name>
<url>url</url>
<snapshots><enabled>true</enabled></snapshots>
</repository> <repository>
<id>repoId2</id>
<url>url2</url>
</repository></repositories>
<pluginRepositories/>
</profile></profiles>`);
});
test('addCustomRepositories - fail if url is missing', () => {
process.env['INPUT_REPOSITORIES'] = '[{"id":"repoId","name":"repoName"}]'
const xml = stringAsXml('<profiles/>');
settings.fillRepositories(xml,'repositories');
const xmlStr = new XMLSerializer().serializeToString(xml);
expect(xmlStr).toBe(`<profiles>
<profile>
<id>_custom_repositories_</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories/>
<pluginRepositories/>
</profile></profiles>`);
expect(consoleOutput).toEqual(
expect.arrayContaining([
expect.stringMatching(/::error::repositories must contain id and url/)
])
);
});