photoprism/frontend/tests/acceptance/favorites.js

54 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-06-04 09:02:28 +00:00
import { Selector } from 'testcafe';
import testcafeconfig from './testcafeconfig';
import Page from "./page-model";
2019-06-22 13:11:45 +00:00
import { RequestLogger } from 'testcafe';
const logger = RequestLogger( /http:\/\/localhost:2342\/api\/v1\/photos*/ , {
logResponseHeaders: true,
logResponseBody: true
});
2019-06-04 09:02:28 +00:00
fixture`Test favorites page`
2019-06-22 13:11:45 +00:00
.page `localhost:2342/favorites`
.requestHooks(logger);
2019-06-04 09:02:28 +00:00
const page = new Page();
test('Like photo', async t => {
const FavoritesCount = await Selector('button.p-photo-like').count;
2019-06-22 13:11:45 +00:00
logger.clear();
2019-06-04 09:02:28 +00:00
await t
.navigateTo("../photos")
const request = await logger.requests[0].responseBody;
2019-06-22 13:11:45 +00:00
await t
.hover(Selector('div[class="v-image__image v-image__image--cover"]').nth(5))
2019-06-04 09:02:28 +00:00
.click(Selector('button.p-photo-like'))
2019-06-22 13:11:45 +00:00
logger.clear();
await t
.navigateTo("../favorites");
const request2 = await logger.requests[0].responseBody;
2019-06-22 13:11:45 +00:00
logger.clear();
const FavoritesCountAfterLike = await Selector('button.p-photo-like').count;
await t
.expect(FavoritesCountAfterLike).eql(FavoritesCount + 1)
2019-06-04 09:02:28 +00:00
.expect(Selector('div.v-image__image').visible).ok();
}),
2019-06-22 13:11:45 +00:00
test('Dislike photo', async t => {
2019-06-22 13:11:45 +00:00
const FavoritesCount = await Selector('button.p-photo-like').count;
await t
.hover(Selector('div[class="v-image__image v-image__image--cover"]').nth(0))
.click(Selector('button.p-photo-like'))
logger.clear();
await t
.navigateTo("../favorites");
const request3 = await logger.requests[0].responseBody;
2019-06-22 13:11:45 +00:00
const FavoritesCountAfterDislike = await Selector('button.p-photo-like').count;
await t
.expect(FavoritesCountAfterDislike).eql(FavoritesCount - 1);
});