diff --git a/src/assets/lang/en_US.json b/src/assets/lang/en_US.json index 34728209..2e5cf83c 100644 --- a/src/assets/lang/en_US.json +++ b/src/assets/lang/en_US.json @@ -2507,5 +2507,6 @@ "{minutes} min": "{minutes} min", "{seconds} s": "{seconds} s", "Exited with an error": "Exited with an error", - "The settings are applied but could not be kept for good.": "The settings are applied but could not be kept for good." + "The settings are applied but could not be kept for good.": "The settings are applied but could not be kept for good.", + "System app": "System app" } diff --git a/src/assets/lang/fr_FR.json b/src/assets/lang/fr_FR.json index 629cd4db..0939950d 100644 --- a/src/assets/lang/fr_FR.json +++ b/src/assets/lang/fr_FR.json @@ -2507,5 +2507,6 @@ "{minutes} min": "{minutes} min", "{seconds} s": "{seconds} s", "Exited with an error": "Arrêté avec une erreur", - "The settings are applied but could not be kept for good.": "Les réglages sont appliqués, mais n'ont pas pu être conservés durablement." + "The settings are applied but could not be kept for good.": "Les réglages sont appliqués, mais n'ont pas pu être conservés durablement.", + "System app": "Application système" } diff --git a/src/components/Apps/AppCard.spec.js b/src/components/Apps/AppCard.spec.js index 80a58f89..b8043bfc 100644 --- a/src/components/Apps/AppCard.spec.js +++ b/src/components/Apps/AppCard.spec.js @@ -570,3 +570,38 @@ describe('the Statistics card count badge', () => { wrapper.unmount() }) }) + +// The system apps carry a small gear chip in the card's top-right corner, where the others have their action button. +describe('the system app marker', () => { + const marker = wrapper => wrapper.find('.system-marker') + const system = { name: 'Files', app_type: 'system', status: 'running', title: { en_us: 'Files' } } + + it('marks the system apps, Statistics included, with an accessible name', async () => { + for (const name of ['App Store', 'Files', 'Virtual Machines', 'Statistics']) { + const wrapper = await card({ ...system, name }) + + expect(marker(wrapper).exists()).toBe(true) + expect(marker(wrapper).attributes('title')).toBe('System app') + expect(marker(wrapper).attributes('aria-label')).toBe('System app') + expect(marker(wrapper).find('.icon').attributes('aria-hidden')).toBe('true') + wrapper.unmount() + } + }) + + it('keeps the Statistics count badge beside it', async () => { + alertBadge.counts.core = 2 + const wrapper = await card({ ...system, name: 'Statistics' }) + + expect(marker(wrapper).exists()).toBe(true) + expect(wrapper.find('.stats-badge').text()).toBe('2') + alertBadge.counts.core = 0 + wrapper.unmount() + }) + + it.each(['v2app', 'container', 'LinkApp'])('is absent on a %s card', async (app_type) => { + const wrapper = await card({ app_type }) + + expect(marker(wrapper).exists()).toBe(false) + wrapper.unmount() + }) +}) diff --git a/src/components/Apps/AppCard.vue b/src/components/Apps/AppCard.vue index 0d51b062..7afcfd34 100644 --- a/src/components/Apps/AppCard.vue +++ b/src/components/Apps/AppCard.vue @@ -123,6 +123,10 @@ + + + +