220 lines
9.8 KiB
JavaScript
220 lines
9.8 KiB
JavaScript
import { Selector } from "testcafe";
|
|
import testcafeconfig from "./testcafeconfig";
|
|
import Page from "./page-model";
|
|
|
|
fixture`Test labels`.page`${testcafeconfig.url}`;
|
|
|
|
const page = new Page();
|
|
|
|
test.meta("testID", "labels-001")("Remove/Activate Add/Delete Label from photo", async (t) => {
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
const countImportantLabels = await Selector("a.is-label").count;
|
|
await t.click(Selector("button.action-show-all"));
|
|
const countAllLabels = await Selector("a.is-label").count;
|
|
await t
|
|
.expect(countAllLabels)
|
|
.gt(countImportantLabels)
|
|
.click(Selector("button.action-show-important"));
|
|
await page.search("beacon");
|
|
const LabelBeacon = await Selector("a.is-label").nth(0).getAttribute("data-uid");
|
|
await t.click(Selector("a.is-label").withAttribute("data-uid", LabelBeacon));
|
|
await page.setFilter("view", "Cards");
|
|
const PhotoBeacon = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
|
await t.click(Selector(".action-title-edit").withAttribute("data-uid", PhotoBeacon));
|
|
const PhotoKeywords = await Selector(".input-keywords textarea").value;
|
|
await t
|
|
.expect(PhotoKeywords)
|
|
.contains("beacon")
|
|
.click(Selector("#tab-labels"))
|
|
.click(Selector("button.action-remove"), { timeout: 5000 })
|
|
.typeText(Selector(".input-label input"), "Test")
|
|
.click(Selector("button.p-photo-label-add"))
|
|
.click(Selector("#tab-details"));
|
|
const PhotoKeywordsAfterEdit = await Selector(".input-keywords textarea").value;
|
|
await t
|
|
.expect(PhotoKeywordsAfterEdit)
|
|
.contains("test")
|
|
.expect(PhotoKeywordsAfterEdit)
|
|
.notContains("beacon")
|
|
.click(Selector(".action-close"));
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("beacon");
|
|
await t.expect(Selector("div.no-results").visible).ok();
|
|
await page.search("test");
|
|
const LabelTest = await Selector("a.is-label").nth(0).getAttribute("data-uid");
|
|
await t
|
|
.click(Selector("a.is-label").withAttribute("data-uid", LabelTest))
|
|
.click(Selector(".action-title-edit").withAttribute("data-uid", PhotoBeacon))
|
|
.click(Selector("#tab-labels"))
|
|
.click(Selector(".action-delete"), { timeout: 5000 })
|
|
.click(Selector(".action-on"))
|
|
.click(Selector("#tab-details"));
|
|
const PhotoKeywordsAfterUndo = await Selector(".input-keywords textarea").value;
|
|
await t
|
|
.expect(PhotoKeywordsAfterUndo)
|
|
.contains("beacon")
|
|
.expect(PhotoKeywordsAfterUndo)
|
|
.notContains("test")
|
|
.click(Selector(".action-close"));
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("test");
|
|
await t.expect(Selector("div.no-results").visible).ok();
|
|
await page.search("beacon");
|
|
await t.expect(Selector("a").withAttribute("data-uid", LabelBeacon).visible).ok();
|
|
});
|
|
|
|
test.meta("testID", "labels-002")("Rename Label", async (t) => {
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("zebra");
|
|
const LabelZebra = await Selector("a.is-label").nth(0).getAttribute("data-uid");
|
|
await t.click(Selector("a.is-label").nth(0));
|
|
const FirstPhotoZebra = await Selector("div.is-photo", { timeout: 5000 })
|
|
.nth(0)
|
|
.getAttribute("data-uid");
|
|
const SecondPhotoZebra = await Selector("div.is-photo", { timeout: 5000 })
|
|
.nth(1)
|
|
.getAttribute("data-uid");
|
|
await page.setFilter("view", "Cards");
|
|
await t.click(Selector(".action-title-edit").withAttribute("data-uid", FirstPhotoZebra));
|
|
const FirstPhotoTitle = await Selector(".input-title input", { timeout: 5000 }).value;
|
|
const FirstPhotoKeywords = await Selector(".input-keywords textarea", { timeout: 5000 }).value;
|
|
await t
|
|
.expect(FirstPhotoTitle)
|
|
.contains("Zebra")
|
|
.expect(FirstPhotoKeywords)
|
|
.contains("zebra")
|
|
.click(Selector("#tab-labels"))
|
|
.click(Selector("div.p-inline-edit"))
|
|
.typeText(Selector(".input-rename input"), "Horse", { replace: true })
|
|
.pressKey("enter")
|
|
.click(Selector("#tab-details"));
|
|
const FirstPhotoTitleAfterEdit = await Selector(".input-title input", { timeout: 5000 }).value;
|
|
const FirstPhotoKeywordsAfterEdit = await Selector(".input-keywords textarea", { timeout: 5000 })
|
|
.value;
|
|
await t
|
|
.expect(FirstPhotoTitleAfterEdit)
|
|
.contains("Horse")
|
|
.expect(FirstPhotoKeywordsAfterEdit)
|
|
.contains("horse")
|
|
.expect(FirstPhotoTitleAfterEdit)
|
|
.notContains("Zebra")
|
|
.click(Selector(".action-close"));
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("horse");
|
|
await t
|
|
.expect(Selector("a").withAttribute("data-uid", LabelZebra).visible)
|
|
.ok()
|
|
.click(Selector("a.is-label").withAttribute("data-uid", LabelZebra))
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhotoZebra).visible)
|
|
.ok()
|
|
.click(Selector(".action-title-edit").withAttribute("data-uid", FirstPhotoZebra))
|
|
.click(Selector("#tab-labels"))
|
|
.click(Selector("div.p-inline-edit"))
|
|
.typeText(Selector(".input-rename input"), "Zebra", { replace: true })
|
|
.pressKey("enter")
|
|
.click(Selector(".action-close"));
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("horse");
|
|
await t.expect(Selector("div.no-results").visible).ok();
|
|
});
|
|
|
|
test.meta("testID", "labels-003")("Add label to album", async (t) => {
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-albums"));
|
|
await page.search("Christmas");
|
|
const AlbumUid = await Selector("a.is-album").nth(0).getAttribute("data-uid");
|
|
await t.click(Selector("a.is-album").withAttribute("data-uid", AlbumUid));
|
|
const PhotoCount = await Selector("div.is-photo").count;
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("landscape");
|
|
const LabelLandscape = await Selector("a.is-label").nth(1).getAttribute("data-uid");
|
|
await t.click(Selector("a.is-label").withAttribute("data-uid", LabelLandscape));
|
|
const FirstPhotoLandscape = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
|
const SecondPhotoLandscape = await Selector("div.is-photo").nth(1).getAttribute("data-uid");
|
|
const ThirdPhotoLandscape = await Selector("div.is-photo").nth(2).getAttribute("data-uid");
|
|
const FourthPhotoLandscape = await Selector("div.is-photo").nth(3).getAttribute("data-uid");
|
|
const FifthPhotoLandscape = await Selector("div.is-photo").nth(4).getAttribute("data-uid");
|
|
const SixthPhotoLandscape = await Selector("div.is-photo").nth(5).getAttribute("data-uid");
|
|
await page.openNav();
|
|
await t.click(".nav-labels");
|
|
await page.selectFromUID(LabelLandscape);
|
|
|
|
const clipboardCount = await Selector("span.count-clipboard");
|
|
await t.expect(clipboardCount.textContent).eql("1");
|
|
await page.addSelectedToAlbum("Christmas", "album");
|
|
await page.openNav();
|
|
await t
|
|
.click(Selector(".nav-albums"))
|
|
.click(Selector("a.is-album").withAttribute("data-uid", AlbumUid));
|
|
const PhotoCountAfterAdd = await Selector("div.is-photo", { timeout: 5000 }).count;
|
|
await t.expect(PhotoCountAfterAdd).eql(PhotoCount + 6);
|
|
await page.selectPhotoFromUID(FirstPhotoLandscape);
|
|
await page.selectPhotoFromUID(SecondPhotoLandscape);
|
|
await page.selectPhotoFromUID(ThirdPhotoLandscape);
|
|
await page.selectPhotoFromUID(FourthPhotoLandscape);
|
|
await page.selectPhotoFromUID(FifthPhotoLandscape);
|
|
await page.selectPhotoFromUID(SixthPhotoLandscape);
|
|
await page.removeSelected();
|
|
const PhotoCountAfterDelete = await Selector("div.is-photo", { timeout: 5000 }).count;
|
|
await t.expect(PhotoCountAfterDelete).eql(PhotoCountAfterAdd - 6);
|
|
});
|
|
|
|
test.meta("testID", "labels-004")("Delete label", async (t) => {
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("dome");
|
|
const LabelDome = await Selector("a.is-label", { timeout: 5000 }).nth(0).getAttribute("data-uid");
|
|
await t.click(Selector("a.is-label").withAttribute("data-uid", LabelDome));
|
|
const FirstPhotoDome = await Selector("div.is-photo", { timeout: 5000 })
|
|
.nth(0)
|
|
.getAttribute("data-uid");
|
|
await page.openNav();
|
|
await t.click(".nav-labels");
|
|
await page.selectFromUID(LabelDome);
|
|
const clipboardCount = await Selector("span.count-clipboard", { timeout: 5000 });
|
|
await t.expect(clipboardCount.textContent).eql("1");
|
|
await page.deleteSelected();
|
|
await page.search("dome");
|
|
await t.expect(Selector("div.no-results").visible).ok();
|
|
await page.openNav();
|
|
await t.click(".nav-browse");
|
|
await page.setFilter("view", "Cards");
|
|
await t
|
|
.click(Selector(".action-title-edit").withAttribute("data-uid", FirstPhotoDome))
|
|
.click(Selector("#tab-labels"))
|
|
.expect(Selector("td").withText("No labels found").visible)
|
|
.ok()
|
|
.typeText(Selector(".input-label input"), "Dome")
|
|
.click(Selector("button.p-photo-label-add"));
|
|
});
|
|
|
|
/*Does not work on sqlite
|
|
test.skip("testID", "labels-005")("Check label count", async (t) => {
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("cat");
|
|
const LabelCat = await Selector("a.is-label", { timeout: 55000 }).nth(0).getAttribute("data-uid");
|
|
const CatCaption = await Selector("a[data-uid=" + LabelCat + "] div.caption").innerText;
|
|
console.log(CatCaption);
|
|
await t.click(Selector("a.is-label").withAttribute("data-uid", LabelCat));
|
|
const countPhotosCat = await Selector("div.is-photo").count;
|
|
await t.expect(CatCaption).contains(countPhotosCat.toString());
|
|
console.log(countPhotosCat);
|
|
await page.openNav();
|
|
await t.click(Selector(".nav-labels"));
|
|
await page.search("people");
|
|
const LabelPeople = await Selector("a.is-label", { timeout: 55000 }).nth(0).getAttribute("data-uid");
|
|
const PeopleCaption = await Selector("a[data-uid=" + LabelCat + "] div.caption").innerText;
|
|
console.log(PeopleCaption);
|
|
await t.click(Selector("a.is-label").withAttribute("data-uid", LabelPeople));
|
|
const countPhotosPeople = await Selector("div.is-photo").count;
|
|
await t.expect(CatCaption).contains(countPhotosPeople.toString());
|
|
console.log(countPhotosPeople);
|
|
});*/
|