diff options
Diffstat (limited to 'spec/frontend/releases/stores/modules/detail/getters_spec.js')
-rw-r--r-- | spec/frontend/releases/stores/modules/detail/getters_spec.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/frontend/releases/stores/modules/detail/getters_spec.js b/spec/frontend/releases/stores/modules/detail/getters_spec.js index 66f24ac9559..c32969c131e 100644 --- a/spec/frontend/releases/stores/modules/detail/getters_spec.js +++ b/spec/frontend/releases/stores/modules/detail/getters_spec.js @@ -134,6 +134,14 @@ describe('Release edit/new getters', () => { // Missing title { id: 7, url: 'https://example.com/valid/1', name: '' }, { id: 8, url: 'https://example.com/valid/2', name: ' ' }, + + // Duplicate title + { id: 9, url: 'https://example.com/1', name: 'Link 7' }, + { id: 10, url: 'https://example.com/2', name: 'Link 7' }, + + // title validation ignores leading/trailing whitespace + { id: 11, url: 'https://example.com/3', name: ' Link 7\t ' }, + { id: 12, url: 'https://example.com/4', name: ' Link 7\n\r\n ' }, ], }, }, @@ -201,6 +209,21 @@ describe('Release edit/new getters', () => { expect(actualErrors).toMatchObject(expectedErrors); }); + + it('returns a validation error if links share a title', () => { + const expectedErrors = { + assets: { + links: { + 9: { isTitleDuplicate: true }, + 10: { isTitleDuplicate: true }, + 11: { isTitleDuplicate: true }, + 12: { isTitleDuplicate: true }, + }, + }, + }; + + expect(actualErrors).toMatchObject(expectedErrors); + }); }); }); |