diff --git a/src/servers/ManageServers.tsx b/src/servers/ManageServers.tsx index 3f69e43a..ad1195d0 100644 --- a/src/servers/ManageServers.tsx +++ b/src/servers/ManageServers.tsx @@ -43,10 +43,12 @@ export const ManageServers = (
- - + Import servers + {allServers.length > 0 && ( + + )}
You can create servers by importing a CSV file with columns name, apiKey and url. diff --git a/test/servers/helpers/ImportServersBtn.test.tsx b/test/servers/helpers/ImportServersBtn.test.tsx index dd8471be..fd8c41af 100644 --- a/test/servers/helpers/ImportServersBtn.test.tsx +++ b/test/servers/helpers/ImportServersBtn.test.tsx @@ -1,3 +1,4 @@ +import { ReactNode } from 'react'; import { shallow, ShallowWrapper } from 'enzyme'; import { UncontrolledTooltip } from 'reactstrap'; import { Mock } from 'ts-mockery'; @@ -16,12 +17,13 @@ describe('', () => { current: Mock.of({ click }), }; const ImportServersBtn = importServersBtnConstruct(serversImporterMock); - const createWrapper = (className?: string) => { + const createWrapper = (className?: string, children?: ReactNode) => { wrapper = shallow( , ); @@ -50,6 +52,21 @@ describe('', () => { expect(wrapper.find('#importBtn').prop('className')).toEqual(expectedClassName); }); + it.each([ + [ undefined, true ], + [ 'foo', false ], + [ 'bar', false ], + ])('has expected text', (children, expectToHaveDefaultText) => { + const wrapper = createWrapper(undefined, children); + + if (expectToHaveDefaultText) { + expect(wrapper.find('#importBtn').html()).toContain('Import from file'); + } else { + expect(wrapper.find('#importBtn').html()).toContain(children); + expect(wrapper.find('#importBtn').html()).not.toContain('Import from file'); + } + }); + it('triggers click on file ref when button is clicked', () => { const wrapper = createWrapper(); const btn = wrapper.find('#importBtn');