Commit 8f626a45 authored by Jannik Lehmann's avatar Jannik Lehmann

Refactor dependency list to use provide/inject for static values

This commit refactors the dependency list page to use
provide/inject instead of props for static values.
parent 0b903b24
...@@ -24,28 +24,13 @@ export default { ...@@ -24,28 +24,13 @@ export default {
DependencyListJobFailedAlert, DependencyListJobFailedAlert,
PaginatedDependenciesTable, PaginatedDependenciesTable,
}, },
props: { inject: [
endpoint: { 'sbomSurveySvgPath',
type: String, 'emptyStateSvgPath',
required: true, 'documentationPath',
}, 'endpoint',
sbomSurveySvgPath: { 'supportDocumentationPath',
type: String, ],
required: true,
},
emptyStateSvgPath: {
type: String,
required: true,
},
documentationPath: {
type: String,
required: true,
},
supportDocumentationPath: {
type: String,
required: true,
},
},
data() { data() {
return { return {
isIncompleteAlertDismissed: false, isIncompleteAlertDismissed: false,
......
...@@ -5,13 +5,13 @@ import createStore from './store'; ...@@ -5,13 +5,13 @@ import createStore from './store';
export default () => { export default () => {
const el = document.querySelector('#js-dependencies-app'); const el = document.querySelector('#js-dependencies-app');
const { const provide = {
endpoint, sbomSurveySvgPath: el.dataset.sbomSurveySvgPath,
emptyStateSvgPath, emptyStateSvgPath: el.dataset.emptyStateSvgPath,
documentationPath, documentationPath: el.dataset.documentationPath,
supportDocumentationPath, endpoint: el.dataset.endpoint,
sbomSurveySvgPath, supportDocumentationPath: el.dataset.supportDocumentationPath,
} = el.dataset; };
const store = createStore(); const store = createStore();
...@@ -21,16 +21,9 @@ export default () => { ...@@ -21,16 +21,9 @@ export default () => {
DependenciesApp, DependenciesApp,
}, },
store, store,
provide: () => provide,
render(createElement) { render(createElement) {
return createElement(DependenciesApp, { return createElement(DependenciesApp);
props: {
endpoint,
emptyStateSvgPath,
documentationPath,
supportDocumentationPath,
sbomSurveySvgPath,
},
});
}, },
}); });
}; };
...@@ -47,6 +47,7 @@ export default () => { ...@@ -47,6 +47,7 @@ export default () => {
}, },
render(createElement) { render(createElement) {
return createElement(LicenseComplianceApp, { return createElement(LicenseComplianceApp, {
// none of these can be injected.
props: { props: {
sbomSurveySvgPath, sbomSurveySvgPath,
emptyStateSvgPath, emptyStateSvgPath,
......
...@@ -26,7 +26,7 @@ describe('DependenciesApp component', () => { ...@@ -26,7 +26,7 @@ describe('DependenciesApp component', () => {
supportDocumentationPath: `${TEST_HOST}/dependency_scanning#supported-languages`, supportDocumentationPath: `${TEST_HOST}/dependency_scanning#supported-languages`,
}; };
const factory = ({ props = basicAppProps, ...options } = {}) => { const factory = ({ ...options } = {}) => {
store = createStore(); store = createStore();
jest.spyOn(store, 'dispatch').mockImplementation(); jest.spyOn(store, 'dispatch').mockImplementation();
...@@ -41,9 +41,15 @@ describe('DependenciesApp component', () => { ...@@ -41,9 +41,15 @@ describe('DependenciesApp component', () => {
wrapper = extendedWrapper( wrapper = extendedWrapper(
mount(DependenciesApp, { mount(DependenciesApp, {
store, store,
propsData: { ...props },
stubs, stubs,
...options, ...options,
provide: {
endpoint: '/foo',
emptyStateSvgPath: '/bar.svg',
sbomSurveySvgPath: '/foo.svg',
documentationPath: TEST_HOST,
supportDocumentationPath: `${TEST_HOST}/dependency_scanning#supported-languages`,
},
}), }),
); );
}; };
...@@ -221,7 +227,7 @@ describe('DependenciesApp component', () => { ...@@ -221,7 +227,7 @@ describe('DependenciesApp component', () => {
it('renders the SbomBannercomponent with the right props', () => { it('renders the SbomBannercomponent with the right props', () => {
const sbomBanner = findSbomBanner(); const sbomBanner = findSbomBanner();
expect(sbomBanner.exists()).toBe(true); expect(sbomBanner.exists()).toBe(true);
expect(sbomBanner.props().sbomSurveySvgPath).toEqual(wrapper.props().sbomSurveySvgPath); expect(sbomBanner.props().sbomSurveySvgPath).toEqual(wrapper.vm.sbomSurveySvgPath);
}); });
describe('given the user has public permissions', () => { describe('given the user has public permissions', () => {
......
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