Commit dd81c573 authored by pburdette's avatar pburdette

Add empty artifacts message

When no artifacts are found show
an empty artifacts message.

Changelog: changed
parent 0d286bc6
...@@ -16,6 +16,7 @@ export const i18n = { ...@@ -16,6 +16,7 @@ export const i18n = {
downloadArtifact: __('Download %{name} artifact'), downloadArtifact: __('Download %{name} artifact'),
artifactSectionHeader: __('Download artifacts'), artifactSectionHeader: __('Download artifacts'),
artifactsFetchErrorMessage: s__('Pipelines|Could not load artifacts.'), artifactsFetchErrorMessage: s__('Pipelines|Could not load artifacts.'),
emptyArtifactsMessage: __('No artifacts found'),
}; };
export default { export default {
...@@ -99,6 +100,10 @@ export default { ...@@ -99,6 +100,10 @@ export default {
<gl-loading-icon v-if="isLoading" size="sm" /> <gl-loading-icon v-if="isLoading" size="sm" />
<gl-dropdown-item v-if="!artifacts.length" data-testid="artifacts-empty-message">
{{ $options.i18n.emptyArtifactsMessage }}
</gl-dropdown-item>
<gl-dropdown-item <gl-dropdown-item
v-for="(artifact, i) in artifacts" v-for="(artifact, i) in artifacts"
:key="i" :key="i"
......
...@@ -22465,6 +22465,9 @@ msgstr "" ...@@ -22465,6 +22465,9 @@ msgstr ""
msgid "No approvers" msgid "No approvers"
msgstr "" msgstr ""
msgid "No artifacts found"
msgstr ""
msgid "No assignee" msgid "No assignee"
msgstr "" msgstr ""
......
...@@ -53,6 +53,7 @@ describe('Pipeline Multi Actions Dropdown', () => { ...@@ -53,6 +53,7 @@ describe('Pipeline Multi Actions Dropdown', () => {
const findDropdown = () => wrapper.findComponent(GlDropdown); const findDropdown = () => wrapper.findComponent(GlDropdown);
const findAllArtifactItems = () => wrapper.findAllByTestId(artifactItemTestId); const findAllArtifactItems = () => wrapper.findAllByTestId(artifactItemTestId);
const findFirstArtifactItem = () => wrapper.findByTestId(artifactItemTestId); const findFirstArtifactItem = () => wrapper.findByTestId(artifactItemTestId);
const findEmptyMessage = () => wrapper.findByTestId('artifacts-empty-message');
beforeEach(() => { beforeEach(() => {
mockAxios = new MockAdapter(axios); mockAxios = new MockAdapter(axios);
...@@ -86,6 +87,7 @@ describe('Pipeline Multi Actions Dropdown', () => { ...@@ -86,6 +87,7 @@ describe('Pipeline Multi Actions Dropdown', () => {
createComponent({ mockData: { artifacts } }); createComponent({ mockData: { artifacts } });
expect(findAllArtifactItems()).toHaveLength(artifacts.length); expect(findAllArtifactItems()).toHaveLength(artifacts.length);
expect(findEmptyMessage().exists()).toBe(false);
}); });
it('should render the correct artifact name and path', () => { it('should render the correct artifact name and path', () => {
...@@ -95,6 +97,12 @@ describe('Pipeline Multi Actions Dropdown', () => { ...@@ -95,6 +97,12 @@ describe('Pipeline Multi Actions Dropdown', () => {
expect(findFirstArtifactItem().text()).toBe(`Download ${artifacts[0].name} artifact`); expect(findFirstArtifactItem().text()).toBe(`Download ${artifacts[0].name} artifact`);
}); });
it('should render empty message when no artifacts are found', () => {
createComponent({ mockData: { artifacts: [] } });
expect(findEmptyMessage().exists()).toBe(true);
});
describe('with a failing request', () => { describe('with a failing request', () => {
it('should render an error message', async () => { it('should render an error message', async () => {
const endpoint = artifactsEndpoint.replace(artifactsEndpointPlaceholder, pipelineId); const endpoint = artifactsEndpoint.replace(artifactsEndpointPlaceholder, pipelineId);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment