mirror of
https://github.com/xuthus83/pigallery2.git
synced 2025-01-14 14:43:17 +08:00
Add minimal gallery e2e testing
This commit is contained in:
parent
5f1ce6dd81
commit
f838697ae7
1
.gitignore
vendored
1
.gitignore
vendored
@ -27,3 +27,4 @@ ffmpeg/
|
|||||||
locale.source.xlf
|
locale.source.xlf
|
||||||
test.*
|
test.*
|
||||||
/db/
|
/db/
|
||||||
|
/test/cypress/screenshots/
|
||||||
|
@ -5,8 +5,11 @@ export default defineConfig({
|
|||||||
e2e: {
|
e2e: {
|
||||||
'baseUrl': 'http://localhost:8080',
|
'baseUrl': 'http://localhost:8080',
|
||||||
experimentalStudio: true,
|
experimentalStudio: true,
|
||||||
supportFile: 'cypress/support/e2e.ts',
|
supportFile: 'test/cypress/support/e2e.ts',
|
||||||
specPattern:'cypress/e2e/**/*.cy.ts'
|
specPattern:'test/cypress/e2e/**/*.cy.ts',
|
||||||
|
fixturesFolder:false,
|
||||||
|
screenshotsFolder:'test/cypress/screenshots',
|
||||||
|
downloadsFolder:'test/cypress/downloads',
|
||||||
},
|
},
|
||||||
|
|
||||||
component: {
|
component: {
|
||||||
|
74
test/cypress/e2e/gallery.cy.ts
Normal file
74
test/cypress/e2e/gallery.cy.ts
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
describe('Gallery', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.visit('/');
|
||||||
|
cy.get('.card-body');
|
||||||
|
cy.get('.col-sm-12').contains('Login');
|
||||||
|
/* ==== Generated with Cypress Studio ==== */
|
||||||
|
cy.get('#username').type('admin');
|
||||||
|
cy.get('#password').clear();
|
||||||
|
cy.get('#password').type('admin');
|
||||||
|
cy.intercept({
|
||||||
|
method: 'Get',
|
||||||
|
url: '/pgapi/gallery/content/',
|
||||||
|
}).as('getContent');
|
||||||
|
cy.get('.col-sm-12 > .btn').click();
|
||||||
|
});
|
||||||
|
it('Gallery should open', () => {
|
||||||
|
cy.get('.mb-0 > :nth-child(1) > .nav-link').contains('Gallery');
|
||||||
|
});
|
||||||
|
it('Gallery should filter', () => {
|
||||||
|
cy.wait('@getContent');
|
||||||
|
cy.get('app-gallery-navbar ng-icon[name="ionFunnelOutline"]').click({scrollBehavior: false});
|
||||||
|
cy.get('app-gallery-navbar #gallery-filter-0').select('City', {force: true});
|
||||||
|
cy.get('app-gallery-navbar #gallery-filter-0').siblings('.filter-column').contains('Berkeley')
|
||||||
|
.parent().find('ng-icon[name="ionFlagOutline"]').click({scrollBehavior: false, force: true});
|
||||||
|
|
||||||
|
cy.get('app-gallery-navbar ng-icon[name="ionFunnelOutline"]').click({scrollBehavior: false});
|
||||||
|
//should indicate that the filters have changed
|
||||||
|
cy.get('app-gallery-navbar .btn-secondary ng-icon[name="ionFunnelOutline"]');
|
||||||
|
|
||||||
|
for (let i = 0; i < 3; ++i) {
|
||||||
|
cy.window().scrollTo(0, 9000, {ensureScrollable: false, duration: 100, easing: 'linear'}).wait(500);
|
||||||
|
}
|
||||||
|
// should this photo be visible
|
||||||
|
cy.get('.photo-container > img[alt="IMG_5910.jpg"]');
|
||||||
|
cy.get('.photo-container > img[alt="IMG_6220.jpg"]').should('not.exist');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it('Gallery should show infobar over photo', () => {
|
||||||
|
cy.wait('@getContent');
|
||||||
|
// contains a folder
|
||||||
|
cy.get(':nth-child(1) > .button > .photo-container > .photo');
|
||||||
|
|
||||||
|
|
||||||
|
for (let i = 0; i < 5; ++i) {
|
||||||
|
cy.window().scrollTo(0, 9000, {ensureScrollable: false, duration: 100, easing: 'linear'}).wait(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
// these photos should be visible
|
||||||
|
cy.get('.photo-container > img[alt="IMG_6220.jpg"]');
|
||||||
|
cy.get('.photo-container > img[alt="IMG_5910.jpg"]').trigger('mouseover', {scrollBehavior: 'center'});
|
||||||
|
|
||||||
|
cy.get('.photo-container > .info > .photo-name').contains('IMG_5910.jpg');
|
||||||
|
cy.get('.photo-container > .info > .photo-position').contains('Berkeley');
|
||||||
|
cy.get('.photo-container > .info > .photo-keywords a').contains('Berkley');
|
||||||
|
cy.get('.photo-container > .info > .photo-keywords a').contains('Alvin the Squirrel');
|
||||||
|
cy.get('.photo-container > .info > .photo-keywords a').contains('USA');
|
||||||
|
});
|
||||||
|
it('Gallery should open ligthbox', () => {
|
||||||
|
cy.wait('@getContent');
|
||||||
|
// contains a folder
|
||||||
|
cy.get(':nth-child(1) > .button > .photo-container > .photo');
|
||||||
|
|
||||||
|
|
||||||
|
for (let i = 0; i < 5; ++i) {
|
||||||
|
cy.window().scrollTo(0, 9000, {ensureScrollable: false, duration: 100, easing: 'linear'}).wait(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
cy.get('.photo-container > img[alt="IMG_5910.jpg"]').click({scrollBehavior: 'center'});
|
||||||
|
cy.get('app-lightbox-controls > #controllers-container > .controls-caption').contains('Squirrel at berkely');
|
||||||
|
cy.get('app-lightbox-controls > .faces-container > .face > .face-name').contains('Alvin the Squirrel');
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
@ -16,12 +16,12 @@ describe('Login', () => {
|
|||||||
cy.intercept({
|
cy.intercept({
|
||||||
method: 'Get',
|
method: 'Get',
|
||||||
url: '/pgapi/gallery/content/',
|
url: '/pgapi/gallery/content/',
|
||||||
}).as('getDir');
|
}).as('getContent');
|
||||||
cy.get('.col-sm-12 > .btn').click();
|
cy.get('.col-sm-12 > .btn').click();
|
||||||
/* ==== End Cypress Studio ==== */
|
/* ==== End Cypress Studio ==== */
|
||||||
cy.get('.mb-0 > :nth-child(1) > .nav-link').contains('Gallery');
|
cy.get('.mb-0 > :nth-child(1) > .nav-link').contains('Gallery');
|
||||||
|
|
||||||
cy.wait('@getDir').then((interception) => {
|
cy.wait('@getContent').then((interception) => {
|
||||||
assert.isNotNull(interception.response.body, '1st API call has data');
|
assert.isNotNull(interception.response.body, '1st API call has data');
|
||||||
});
|
});
|
||||||
});
|
});
|
6
test/tsconfig.json
Normal file
6
test/tsconfig.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"extends": "../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"sourceMap": false,
|
||||||
|
}
|
||||||
|
}
|
@ -28,6 +28,6 @@
|
|||||||
"exclude": [
|
"exclude": [
|
||||||
"cypress.config.ts",
|
"cypress.config.ts",
|
||||||
// See https://github.com/cypress-io/cypress/issues/7552#issuecomment-763498855
|
// See https://github.com/cypress-io/cypress/issues/7552#issuecomment-763498855
|
||||||
"cypress/**/*"
|
"test/cypress/**/*"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user