Skip to content

Commit 4c6b772

Browse files
committed
Tests - Rewrite VueUiverticalBar component test
1 parent 8318016 commit 4c6b772

File tree

4 files changed

+54
-273
lines changed

4 files changed

+54
-273
lines changed

cypress/fixtures/vdui-components.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,6 +1654,16 @@ export const components = [
16541654
],
16551655
},
16561656
],
1657+
config: {
1658+
style: {
1659+
chart: {
1660+
title: {
1661+
text: 'Title',
1662+
subtitle: { text: 'Subtitle' }
1663+
}
1664+
}
1665+
}
1666+
},
16571667
wrapperClass: ".vue-ui-vertical-bar",
16581668
},
16591669
{

cypress/fixtures/vertical-bar.json

Lines changed: 0 additions & 181 deletions
This file was deleted.
Lines changed: 34 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,37 @@
1-
import VueUiVerticalBar from './vue-ui-vertical-bar.vue'
1+
import VueUiVerticalBar from './vue-ui-vertical-bar.vue';
2+
import { components } from '../../cypress/fixtures/vdui-components';
3+
import { testCommonFeatures } from '../../cypress/fixtures';
24

3-
describe('<VueUiVerticalBar />', () => {
4-
5-
beforeEach(function () {
6-
cy.fixture('vertical-bar.json').as('fixture');
7-
cy.viewport(1000, 800);
8-
});
9-
10-
it('segregates series when selecting legend items', () => {
11-
cy.get('@fixture').then((fixture) => {
12-
cy.mount(VueUiVerticalBar, {
13-
props: {
14-
dataset: fixture.dataset,
15-
config: fixture.config
16-
}
17-
});
18-
19-
cy.get('[data-cy-legend-item]').eq(0).click()
20-
cy.get('[data-cy-trap]').should('have.length', 7)
21-
cy.get('[data-cy-legend-item]').eq(0).click()
22-
cy.get('[data-cy-trap]').should('have.length', 8)
23-
});
24-
})
25-
26-
it('renders', () => {
27-
cy.get('@fixture').then((fixture) => {
28-
cy.mount(VueUiVerticalBar, {
29-
props: {
30-
dataset: fixture.dataset,
31-
config: fixture.config
32-
}
33-
});
34-
35-
cy.get(`[data-cy="vertical-bar-div-title"]`)
36-
.should('exist')
37-
.contains(fixture.config.style.chart.title.text);
38-
39-
cy.get(`[data-cy="vertical-bar-div-subtitle"]`)
40-
.should('exist')
41-
.contains(fixture.config.style.chart.title.subtitle.text);
42-
43-
cy.get(`[data-cy="user-options-summary"]`).click();
5+
const { config, dataset } = components.find(c => c.name === 'VueUiVerticalBar');
446

45-
cy.get(`[data-cy="user-options-table"]`).click({ force: true});
46-
cy.viewport(1000, 1050);
47-
48-
const bars = fixture.dataset.map(d => {
49-
if(d.children) {
50-
return d.children.length;
51-
}
52-
return 1;
53-
}).reduce((a,b) => a +b, 0);
54-
55-
for (let i = 0; i < bars; i += 1) {
56-
cy.get(`[data-cy="vertical-bar-rect-underlayer-${i}"]`)
57-
.should('exist')
58-
.invoke('attr', 'fill')
59-
.should('eq', fixture.config.style.chart.layout.bars.underlayerColor);
60-
cy.get(`[data-cy="vertical-bar-datalabel-${i}"]`)
61-
.should('exist');
62-
}
63-
64-
cy.get(`[data-cy="vertical-bar-trap-0"]`)
65-
.trigger('mouseenter');
66-
67-
cy.get(`[data-cy="tooltip"]`)
68-
.should('exist');
69-
70-
cy.get(`[data-cy="vertical-bar-trap-0"]`)
71-
.trigger('mouseleave');
72-
73-
cy.get(`[data-cy="tooltip"]`)
74-
.should('not.exist');
75-
76-
cy.get(`[data-cy="user-options-summary"]`).click({ force: true });
77-
78-
// cy.get(`[data-cy="user-options-pdf"]`).click({ force: true });
79-
// cy.readFile(`cypress\\Downloads\\${fixture.config.style.chart.title.text}.pdf`);
80-
// cy.get(`[data-cy="user-options-xls"]`).click({ force: true });
81-
// cy.readFile(`cypress\\Downloads\\${fixture.config.style.chart.title.text}.csv`);
82-
// cy.get(`[data-cy="user-options-img"]`).click({ force: true });
83-
// cy.readFile(`cypress\\Downloads\\${fixture.config.style.chart.title.text}.png`);
84-
// cy.clearDownloads();
85-
cy.get(`[data-cy="user-options-summary"]`).click({ force: true });
86-
87-
});
88-
});
7+
describe('<VueUiVerticalBar />', () => {
8+
it('renders', () => {
9+
cy.mount(VueUiVerticalBar, {
10+
props: {
11+
dataset,
12+
config
13+
}
14+
}).then(() => {
15+
16+
testCommonFeatures({
17+
userOptions: true,
18+
title: true,
19+
subtitle: true,
20+
dataTable: true,
21+
legend: true,
22+
tooltipCallback: () => {
23+
cy.get('[data-cy="tooltip-trap"]').first().trigger('mouseenter', { force: true })
24+
}
25+
});
26+
27+
cy.log('datapoints');
28+
cy.get('[data-cy="datapoint-underlayer"]').should('exist').and('be.visible').and('have.length', 8);
29+
cy.get('[data-cy="datapoint-bar"]').should('exist').and('be.visible').and('have.length', 8);
30+
cy.get('[data-cy="datapoint-separator"]').should('exist').and('have.css', 'opacity', '1').and('have.length', 4);
31+
cy.get('[data-cy="datapoint-label"]').should('exist').and('be.visible').and('have.length', 8);
32+
cy.get('[data-cy="datapoint-name"]').should('exist').and('be.visible').and('have.length', 8);
33+
cy.get('[data-cy="datapoint-parent-name"]').should('exist').and('be.visible').and('have.length', dataset.filter(d => !!d.children).length);
34+
cy.get('[data-cy="datapoint-parent-value"]').should('exist').and('be.visible').and('have.length', dataset.filter(d => !!d.children).length);
35+
});
36+
});
8937
});

0 commit comments

Comments
 (0)