diff --git a/test/test.apiclient.ts b/test/test.apiclient.ts index 662dbde..02dfd7f 100644 --- a/test/test.apiclient.ts +++ b/test/test.apiclient.ts @@ -184,6 +184,7 @@ tap.test('should expose generated service registry targets', async () => { expect(registryTarget.protocol).toEqual('oci'); expect(registryTarget.registryHost).toEqual(`${helpers.testCloudlyConfig.publicUrl}:${helpers.testCloudlyConfig.publicPort}`); expect(registryTarget.repository.startsWith('workloads/registry-target-test-service-')).toBeTrue(); + expect(registryTarget.repository.split('/').every((partArg) => /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(partArg))).toBeTrue(); expect(registryTarget.imageUrl).toEqual(`${registryTarget.registryHost}/${registryTarget.repository}:latest`); const refreshedService = await testClient.services.getServiceById(service.id); diff --git a/ts/manager.registry/classes.registrymanager.ts b/ts/manager.registry/classes.registrymanager.ts index 571b7a7..28e152e 100644 --- a/ts/manager.registry/classes.registrymanager.ts +++ b/ts/manager.registry/classes.registrymanager.ts @@ -252,7 +252,8 @@ export class CloudlyRegistryManager { private slugify(valueArg: string) { return valueArg .toLowerCase() - .replace(/[^a-z0-9._-]+/g, '-') + .replace(/[^a-z0-9]+/g, '-') + .replace(/-+/g, '-') .replace(/^-+|-+$/g, '') || 'service'; }