import { Selector } from "testcafe"; import testcafeconfig from "./testcafeconfig"; import Menu from "../page-model/menu"; import Album from "../page-model/album"; import Toolbar from "../page-model/toolbar"; import ContextMenu from "../page-model/context-menu"; import Photo from "../page-model/photo"; import Page from "../page-model/page"; import AlbumDialog from "../page-model/dialog-album"; fixture`Test moments`.page`${testcafeconfig.url}`; const menu = new Menu(); const album = new Album(); const toolbar = new Toolbar(); const contextmenu = new ContextMenu(); const photo = new Photo(); const page = new Page(); const albumdialog = new AlbumDialog(); test.meta("testID", "moments-001")("Update moment details", async (t) => { await menu.openPage("moments"); await toolbar.search("Nature"); const AlbumUid = await album.getNthAlbumUid("all", 0); await t.expect(page.cardTitle.nth(0).innerText).contains("Nature"); await t.click(page.cardTitle.nth(0)); await t .expect(albumdialog.title.value) .eql("Nature & Landscape") .expect(albumdialog.location.value) .eql("") .expect(albumdialog.description.value) .eql("") .expect(albumdialog.category.value) .eql(""); await t .typeText(albumdialog.title, "Winter", { replace: true }) .typeText(albumdialog.location, "Snow-Land", { replace: true }) .typeText(albumdialog.description, "We went to ski") .typeText(albumdialog.category, "Mountains") .pressKey("enter") .click(albumdialog.dialogSave); await t .expect(page.cardTitle.nth(0).innerText) .contains("Winter") .expect(page.cardDescription.nth(0).innerText) .contains("We went to ski") .expect(Selector("div.caption").nth(1).innerText) .contains("Mountains") .expect(Selector("div.caption").nth(2).innerText) .contains("Snow-Land"); await album.openNthAlbum(0); await t.expect(toolbar.toolbarTitle.innerText).contains("Winter"); await t.expect(toolbar.toolbarDescription.innerText).contains("We went to ski"); await menu.openPage("moments"); if (t.browser.platform === "mobile") { await toolbar.search("category:Mountains"); } else { await toolbar.setFilter("category", "Mountains"); } await t.expect(page.cardTitle.nth(0).innerText).contains("Winter"); await album.openAlbumWithUid(AlbumUid); await toolbar.triggerToolbarAction("edit"); await t .expect(albumdialog.description.value) .eql("We went to ski") .expect(albumdialog.category.value) .eql("Mountains") .expect(albumdialog.location.value) .eql("Snow-Land"); await t .typeText(albumdialog.title, "Nature & Landscape", { replace: true }) .click(albumdialog.category) .pressKey("ctrl+a delete") .pressKey("enter") .click(albumdialog.description) .pressKey("ctrl+a delete") .pressKey("enter") .click(albumdialog.location) .pressKey("ctrl+a delete") .pressKey("enter") .click(albumdialog.dialogSave); await menu.openPage("moments"); await toolbar.search("Nature"); await t .expect(page.cardTitle.nth(0).innerText) .contains("Nature & Landscape") .expect(page.cardDescription.innerText) .notContains("We went to ski") .expect(Selector("div.caption").nth(0).innerText) .notContains("Snow-Land"); }); test.meta("testID", "moments-002")("Create, Edit, delete sharing link for moment", async (t) => { await page.testCreateEditDeleteSharingLink("moments"); }); test.meta("testID", "moments-003")("Create/delete album-clone from moment", async (t) => { await menu.openPage("albums"); const AlbumCount = await album.getAlbumCount("all"); await menu.openPage("moments"); const FirstMomentUid = await album.getNthAlbumUid("all", 0); await album.openAlbumWithUid(FirstMomentUid); const PhotoCountInMoment = await photo.getPhotoCount("all"); const FirstPhotoUid = await photo.getNthPhotoUid("image", 0); const SecondPhotoUid = await photo.getNthPhotoUid("image", 1); await menu.openPage("moments"); await album.selectAlbumFromUID(FirstMomentUid); await contextmenu.triggerContextMenuAction("clone", "NotYetExistingAlbumForMoment"); await menu.openPage("albums"); const AlbumCountAfterCreation = await album.getAlbumCount("all"); await t.expect(AlbumCountAfterCreation).eql(AlbumCount + 1); await toolbar.search("NotYetExistingAlbumForMoment"); const AlbumUid = await album.getNthAlbumUid("all", 0); await album.openAlbumWithUid(AlbumUid); const PhotoCountInAlbum = await photo.getPhotoCount("all"); await t.expect(PhotoCountInAlbum).eql(PhotoCountInMoment); await photo.checkPhotoVisibility(FirstPhotoUid, true); await photo.checkPhotoVisibility(SecondPhotoUid, true); await menu.openPage("albums"); await album.selectAlbumFromUID(AlbumUid); await contextmenu.triggerContextMenuAction("delete", ""); await menu.openPage("albums"); const AlbumCountAfterDelete = await album.getAlbumCount("all"); await t.expect(AlbumCountAfterDelete).eql(AlbumCount); await menu.openPage("moments"); await album.openAlbumWithUid(FirstMomentUid); await photo.checkPhotoVisibility(FirstPhotoUid, true); await photo.checkPhotoVisibility(SecondPhotoUid, true); });