diff options
Diffstat (limited to 'spec/frontend/clusters_list/components/agents_spec.js')
-rw-r--r-- | spec/frontend/clusters_list/components/agents_spec.js | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/spec/frontend/clusters_list/components/agents_spec.js b/spec/frontend/clusters_list/components/agents_spec.js index 54d5ae94172..2dec7cdc973 100644 --- a/spec/frontend/clusters_list/components/agents_spec.js +++ b/spec/frontend/clusters_list/components/agents_spec.js @@ -14,7 +14,7 @@ localVue.use(VueApollo); describe('Agents', () => { let wrapper; - const propsData = { + const defaultProps = { defaultBranchName: 'default', }; const provideData = { @@ -22,12 +22,12 @@ describe('Agents', () => { kasAddress: 'kas.example.com', }; - const createWrapper = ({ agents = [], pageInfo = null, trees = [] }) => { + const createWrapper = ({ props = {}, agents = [], pageInfo = null, trees = [], count = 0 }) => { const provide = provideData; const apolloQueryResponse = { data: { project: { - clusterAgents: { nodes: agents, pageInfo, tokens: { nodes: [] } }, + clusterAgents: { nodes: agents, pageInfo, tokens: { nodes: [] }, count }, repository: { tree: { trees: { nodes: trees, pageInfo } } }, }, }, @@ -40,7 +40,10 @@ describe('Agents', () => { wrapper = shallowMount(Agents, { localVue, apolloProvider, - propsData, + propsData: { + ...defaultProps, + ...props, + }, provide: provideData, }); @@ -54,7 +57,6 @@ describe('Agents', () => { afterEach(() => { if (wrapper) { wrapper.destroy(); - wrapper = null; } }); @@ -81,6 +83,8 @@ describe('Agents', () => { }, ]; + const count = 2; + const trees = [ { name: 'agent-2', @@ -121,7 +125,7 @@ describe('Agents', () => { ]; beforeEach(() => { - return createWrapper({ agents, trees }); + return createWrapper({ agents, count, trees }); }); it('should render agent table', () => { @@ -133,6 +137,10 @@ describe('Agents', () => { expect(findAgentTable().props('agents')).toMatchObject(expectedAgentsList); }); + it('should emit agents count to the parent component', () => { + expect(wrapper.emitted().onAgentsLoad).toEqual([[count]]); + }); + describe('when the agent has recently connected tokens', () => { it('should set agent status to active', () => { expect(findAgentTable().props('agents')).toMatchObject(expectedAgentsList); @@ -180,6 +188,20 @@ describe('Agents', () => { it('should pass pageInfo to the pagination component', () => { expect(findPaginationButtons().props()).toMatchObject(pageInfo); }); + + describe('when limit is passed from the parent component', () => { + beforeEach(() => { + return createWrapper({ + props: { limit: 6 }, + agents, + pageInfo, + }); + }); + + it('should not render pagination buttons', () => { + expect(findPaginationButtons().exists()).toBe(false); + }); + }); }); }); @@ -234,7 +256,11 @@ describe('Agents', () => { }; beforeEach(() => { - wrapper = shallowMount(Agents, { mocks, propsData, provide: provideData }); + wrapper = shallowMount(Agents, { + mocks, + propsData: defaultProps, + provide: provideData, + }); return wrapper.vm.$nextTick(); }); |