Skip to content
Snippets Groups Projects
Commit abab2d81 authored by Tore Andre Haugstad Orheim's avatar Tore Andre Haugstad Orheim
Browse files

Merge branch 'main' into 'master'

Main

See merge request !2
parents 7a1bf48c ead5a495
No related branches found
No related tags found
1 merge request!2Main
Pipeline #173620 passed
node_modules
stages:
- build
- test
variables:
npm_config_cache: '$CI_PROJECT_DIR/.npm'
CYPRESS_CACHE_FOLDER: '$CI_PROJECT_DIR/cache/Cypress'
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- cache/Cypress
- node_modules
- build
install:
image: cypress/browsers:node12.14.1-chrome85-ff81
stage: build
script:
- npm ci
test:
image: cypress/browsers:node12.14.1-chrome85-ff81
stage: test
parallel: 2
script:
- npm ci
- npm run start &
# run Cypress tests
- npx cypress run --record --key 98347c6d-91c4-4c7e-9995-2b39f2450e65 --parallel --browser chrome --group "UI - Chrome"
artifacts:
when: always
paths:
- cypress/videos/**/*.mp4
- cypress/screenshots/**.png
expire_in: 1 day
\ No newline at end of file
{
"baseUrl": "http://localhost:8080",
"testFiles": "**/*.feature"
"testFiles": "**/*.feature",
"projectId": "q2wxbi"
}
......@@ -10,3 +10,13 @@ Egenskap: Handlekurv
Når jeg legger inn varer og kvanta
skal handlekurven inneholde det jeg har lagt inn
Og den skal ha riktig totalpris
Scenario: Slette vare i handlekurven
Gitt at jeg har åpnet nettkiosken
Og jeg har lagt inn varer og kvanta
Når jeg sletter varer
skal handlekurven ikke inneholde det jeg slettet
Scenario: Oppdatere kvanta for vare i handlekurven
Gitt at jeg har åpnet nettkiosken
Og jeg har lagt inn varer og kvanta
Når jeg oppdaterer kvanta for en vare
skal handlekurven inneholde riktig kvanta for varen
\ No newline at end of file
......@@ -23,9 +23,95 @@ When(/^jeg legger inn varer og kvanta$/, () => {
});
Then(/^skal handlekurven inneholde det jeg har lagt inn$/, () => {
// TODO: Verifiser innholdet i lista med should()
cy.get('#list > li').should(($lis) => {
expect($lis).to.have.length(4);
expect($lis.eq(0)).to.contain('1 Stratos; 8 kr');
expect($lis.eq(1)).to.contain('4 Hubba bubba; 8 kr');
expect($lis.eq(2)).to.contain('5 Smørbukk; 5 kr');
expect($lis.eq(3)).to.contain('2 Hobby; 12 kr');
});
});
And(/^den skal ha riktig totalpris$/, function () {
cy.get('#price').should('have.text', '33');
});
\ No newline at end of file
});
Given(/^at jeg har opnet nettkiosken$/, () => {
cy.visit('http://localhost:8080');
});
And(/^jeg har lagt inn varer og kvanta$/, () => {
cy.get('#product').select('Hubba bubba');
cy.get('#quantity').clear().type('4');
cy.get('#saveItem').click();
cy.get('#product').select('Smørbukk');
cy.get('#quantity').clear().type('5');
cy.get('#saveItem').click();
cy.get('#product').select('Stratos');
cy.get('#quantity').clear().type('1');
cy.get('#saveItem').click();
cy.get('#product').select('Hobby');
cy.get('#quantity').clear().type('2');
cy.get('#saveItem').click();
});
When(/^jeg sletter varer/, () => {
cy.get('#product').select('Smørbukk');
cy.get('#deleteItem').click();
cy.get('#product').select('Hubba bubba');
cy.get('#deleteItem').click();
})
Then(/^skal handlekurven ikke inneholde det jeg slettet$/, () => {
cy.get('#list > li').should(($lis) => {
expect($lis).to.have.length(2);
expect($lis.eq(0)).to.contain('1 Stratos; 8 kr');
expect($lis.eq(1)).to.contain('2 Hobby; 12 kr');
});
})
Given(/^at jeg har åpnet nettkiosken/, () => {
cy.visit('http://localhost:8080');
})
And(/^jeg har lagt inn varer og kvanta/, () => {
cy.get('#product').select('Hubba bubba');
cy.get('#quantity').clear().type('4');
cy.get('#saveItem').click();
cy.get('#product').select('Smørbukk');
cy.get('#quantity').clear().type('5');
cy.get('#saveItem').click();
cy.get('#product').select('Stratos');
cy.get('#quantity').clear().type('1');
cy.get('#saveItem').click();
cy.get('#product').select('Hobby');
cy.get('#quantity').clear().type('2');
cy.get('#saveItem').click();
})
When(/^jeg oppdaterer kvanta for en vare/, () => {
cy.get('#product').select('Smørbukk');
cy.get('#quantity').clear().type('3')
cy.get('#saveItem').click();
cy.get('#product').select('Hubba bubba');
cy.get('#quantity').clear().type('1');
cy.get('#saveItem').click();
})
Then(/^skal handlekurven inneholde riktig kvanta for varen/, () => {
cy.get('#list > li').should(($lis) => {
expect($lis).to.have.length(4);
expect($lis.eq(0)).to.contain('1 Stratos; 8 kr');
expect($lis.eq(1)).to.contain('1 Hubba bubba; 2 kr');
expect($lis.eq(2)).to.contain('3 Smørbukk; 3 kr');
expect($lis.eq(3)).to.contain('2 Hobby; 12 kr');
});
})
\ No newline at end of file
# language: no
Egenskap: Kundeinformasjon
Som kunde av nettkiosken
Ønsker jeg å kunne legge inn betalingsinformasjon
Slik at jeg kan få godis i posten
Scenario: Fullført kjøp
Gitt at jeg har lagt inn varer i handlekurven
Og trykket på Gå til betaling
Når jeg legger inn navn, adresse, postnummer, poststed og kortnummer
Og trykker på Fullfør kjøp
skal jeg få beskjed om at kjøpet er registrert
Scenario: Ugyldige verdier i betalingsside
Gitt at jeg har lagt inn varer i handlekurven
Og trykket på Gå til betaling
Når jeg legger inn ugyldige verdier i feltene
skal jeg få feilmeldinger for disse
\ No newline at end of file
import { Given, When, Then, And } from "cypress-cucumber-preprocessor/steps";
Given(/^at jeg har lagt inn varer i handlekurven$/, () => {
cy.visit('http://localhost:8080');
cy.get('#product').select('Hobby');
cy.get('#quantity').clear().type('2');
cy.get('#saveItem').click();
cy.get('#product').select('Hubba bubba');
cy.get('#quantity').clear().type('4');
cy.get('#saveItem').click();
});
And(/^trykket på Gå til betaling$/, () => {
cy.get('#goToPayment').click();
})
When(/^jeg legger inn navn, adresse, postnummer, poststed og kortnummer$/, () => {
cy.get('#fullName').clear().type("Tore Orheim");
cy.get('#address').clear().type("Anne Hogstads Veg 18");
cy.get('#postCode').clear().type("7046");
cy.get('#city').clear().type("Trondheim");
cy.get('#creditCardNo').clear().type("1925485658747741");
});
And(/^trykker på Fullfør kjøp$/, () => {
cy.get('input').contains('Fullfør handel').click();
})
Then(/^skal jeg få beskjed om at kjøpet er registrert$/, () => {
cy.get('div').should('contain', 'Din ordre er registrert')
});
Given(/^at jeg har lagt inn varer i handlekurven$/, () => {
cy.visit('http://localhost:8080');
cy.get('#product').select('Hobby');
cy.get('#quantity').clear().type('2');
cy.get('#saveItem').click();
cy.get('#product').select('Hubba bubba');
cy.get('#quantity').clear().type('4');
cy.get('#saveItem').click();
});
And(/^trykket på Gå til betaling$/, () => {
cy.get('#goToPayment').click();
})
When(/^jeg legger inn ugyldige verdier i feltene$/, () => {
cy.get('#fullName').clear()
cy.get('#address').clear()
cy.get('#postCode').clear()
cy.get('#city').clear()
cy.get('#creditCardNo').clear().type("19254856");
cy.get('input').contains('Fullfør handel').click();
})
Then(/^skal jeg få feilmeldinger for disse$/, () => {
cy.get('div > #fullNameError').should('contain', 'Feltet må ha en verdi');
cy.get('div > #addressError').should('contain', 'Feltet må ha en verdi');
cy.get('div > #postCodeError').should('contain', 'Feltet må ha en verdi');
cy.get('div > #cityError').should('contain', 'Feltet må ha en verdi');
cy.get('div > #creditCardNoError').should('contain', 'Kredittkortnummeret må bestå av 16 siffer');
})
File added
File added
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment