Skip to content
This repository was archived by the owner on Feb 5, 2022. It is now read-only.

Commit 9b3c982

Browse files
author
Pablo Huerta
committed
SLA tests
1 parent 76a9781 commit 9b3c982

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
describe("SLA", function () {
2+
var env = 'http://localhost:3333';
3+
beforeEach(() => {
4+
cy.visit(env + '/service-level-agreement');
5+
});
6+
7+
describe('Hero SLA', () => {
8+
it('User is able to view the SLA hero content', () => {
9+
cy.get('.hero-content > h2').contains('Service Level Agreement');
10+
cy.get('.hero-content > p').contains("Below you can read the contents of our SLA. We welcome questions, so if you have any, don't hesitate to contact us at hello@openforge.io!");
11+
cy.get('.btn').should('exist').and('be.visible');
12+
});
13+
14+
it('User is able to scroll to content via "Learn More"', () => {
15+
cy.get('.btn').click();
16+
cy.get('#sla').should('be.visible');
17+
});
18+
19+
});
20+
describe('SLA Table', () => {
21+
it('User is able to view the Area, Action, and Detail columns', () => {
22+
cy.get('#sla').scrollIntoView();
23+
cy.get('.sla-headers > :nth-child(1)').should('be.visible');
24+
cy.get('.sla-headers > :nth-child(2)').should('be.visible');
25+
cy.get('.sla-headers > :nth-child(3)').should('be.visible');
26+
});
27+
28+
it('User is able to see the Client Service Row', () => {
29+
cy.get('.sla-headers > :nth-child(1)').scrollIntoView();
30+
cy.get('#sla > :nth-child(3) > :nth-child(1)').contains('Client Service');
31+
cy.get('#sla > :nth-child(3) > :nth-child(2)').contains('Client Management');
32+
cy.get(':nth-child(3) > .sla-detail > ul').contains('Meeting minutes will be used within 24 hours of meeting');
33+
cy.get(':nth-child(3) > .sla-detail > ul').contains('A weekly status report will be provided on actively scheduled projects/multiple project accounts');
34+
cy.get(':nth-child(3) > .sla-detail > ul').contains('All Teamwork messages will be responded to within 6 - 24 hours, depending on the priority of the message');
35+
cy.get(':nth-child(3) > .sla-detail > ul').contains('Clients will be kept up to date on relevant information of project deliverables, including milestones and risks');
36+
cy.get(':nth-child(3) > .sla-detail > ul').contains('A quarterly review meeting will be scheduled with Client and Client Management team to review overall project and roadmap');
37+
cy.get(':nth-child(3) > .sla-detail > ul').contains('Handover notes and replacement agency contact will be provided in the case of a switch in provider');
38+
});
39+
40+
it('User is able to see the Creative row', () => {
41+
cy.get('#sla > :nth-child(5) > :nth-child(1)').scrollIntoView();
42+
cy.get('#sla > :nth-child(5) > :nth-child(1)').contains('Creative');
43+
cy.get(':nth-child(5) > :nth-child(2)').contains('Concept');
44+
cy.get(':nth-child(5) > .sla-detail > ul').contains('Concepts will be presented and supported with a strategic and creative rationale');
45+
cy.get(':nth-child(5) > .sla-detail > ul').contains('Recommendation provided; if requested Creative execution will be adhere to client brand and guidelines where available and appropriate');
46+
cy.get(':nth-child(5) > .sla-detail > ul').contains('Creative team will attend presentation where feasible or necessary');
47+
});
48+
49+
it('User is able to see the Project Management Row', () => {
50+
cy.get('#sla > :nth-child(7) > :nth-child(1)').scrollIntoView();
51+
cy.get('#sla > :nth-child(7) > :nth-child(1)').contains('Project Management');
52+
cy.get(':nth-child(7) > :nth-child(2)').contains('Planning & Scheduling');
53+
cy.get(':nth-child(7) > .sla-detail > ul').contains("A roadmap of major milestone & feature completions will be provided via Teamwork's Milestone functionality Milestones will be updated and reviewed when necessary");
54+
cy.get(':nth-child(7) > .sla-detail > ul').contains("Project and production timing plans will be adhered to and in the event of milestones being missed, a revised timing plan will be provided");
55+
cy.get(':nth-child(7) > .sla-detail > ul').contains("Any changes to ultimate delivery will be discussed and agreed with the Client");
56+
cy.get(':nth-child(7) > .sla-detail > ul').contains("Openforge will always aim to meet the original deadline");
57+
cy.get(':nth-child(7) > .sla-detail > ul').contains("Where this is not possible, potential alternative will be provided");
58+
});
59+
60+
it('User is able to see the Production row', () => {
61+
cy.get(':nth-child(9) > :nth-child(1)').scrollIntoView();
62+
cy.get(':nth-child(9) > :nth-child(1)').contains('Production');
63+
cy.get(':nth-child(9) > :nth-child(2)').contains('Costs');
64+
cy.get(':nth-child(9) > .sla-detail > ul').contains("A cost estimate of Creative work will be presented and agreed to by Client before work is started");
65+
cy.get(':nth-child(9) > .sla-detail > ul').contains("Cost Estimate will be based on approved project brief from client");
66+
cy.get(':nth-child(9) > .sla-detail > ul').contains("Production cost estimates can be obtained from eternal suppliers on behalf of client");
67+
cy.get(':nth-child(9) > .sla-detail > ul').contains("A cost estimate of Development work will be presented once Creative work (Design) and Architecture Discovery is completed");
68+
cy.get(':nth-child(9) > .sla-detail > ul').contains("Any estimates provided before Opeforge's discovery & design process are complete are only estimates, and can not be guaranteed by threshold pricing policy");
69+
cy.get(':nth-child(9) > .sla-detail > ul').contains("Openforge will proceed with the relevant action following written approval of costs through Teamwork");
70+
cy.get(':nth-child(9) > .sla-detail > ul').contains("A concept will be delivered on budget. In the event of a concept being over budget, or at risk of going over budget, an alternative on-budget alternative solution will be provided");
71+
cy.get(':nth-child(9) > .sla-detail > ul').contains("If a concept is delivered over budget due to a change in requirements or a dependency on a 3rd party provider, regular pricing applies. If a concept is delivered over budget for any other reason, threshold pricing will apply");
72+
});
73+
74+
it('User is able to see the Finance row', () => {
75+
cy.get(':nth-child(11) > :nth-child(1)').scrollIntoView();
76+
cy.get(':nth-child(11) > :nth-child(1)').contains('Finance');
77+
cy.get(':nth-child(11) > :nth-child(2)').contains('Billing');
78+
cy.get(':nth-child(11) > .sla-detail > ul').contains("Any changes to costs will be discussed with the client and documented via Teamwork");
79+
cy.get(':nth-child(11) > .sla-detail > ul').contains('All work is scheduled in advance with prepaid retainers, also known as a "top-up" model');
80+
cy.get(':nth-child(11) > .sla-detail > ul').contains("Only after payment of hours will client work be scheduled");
81+
cy.get(':nth-child(11) > .sla-detail > ul').contains("Client automatically approves any hours spent responding to questions or high priority tickets");
82+
});
83+
});
84+
describe('Footer', function () {
85+
it('User is able to go to the top of the page via "Back to Top"', () => {
86+
cy.get('.top-link').click();
87+
cy.get('.hero').should('be.visible');
88+
});
89+
90+
it('The footer is visible on the SLA page', () => {
91+
cy.get('.footer').scrollIntoView();
92+
cy.get('.footer').should('be.visible');
93+
});
94+
});
95+
});

0 commit comments

Comments
 (0)