Feature("Time traveling");
const IMAGE =
"https://htx-pub.s3.us-east-1.amazonaws.com/examples/images/nick-owuor-astro-nic-visuals-wDifg5xc9Z4-unsplash.jpg";
Scenario(
"Travel through history with the selected brush region",
async ({ I, LabelStudio, AtImageView, AtOutliner }) => {
I.amOnPage("/");
LabelStudio.init({
data: { image: IMAGE },
config: ``,
});
LabelStudio.waitForObjectsReady();
AtOutliner.seeRegions(0);
AtOutliner.dontSeeSelectedRegion();
I.say("Draw a brush region");
await AtImageView.lookForStage();
AtImageView.selectToolByCode("brush");
AtImageView.hasSelectedTool("brush");
AtImageView.drawThroughPoints([
[50, 50],
[100, 50],
[50, 80],
]);
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Add a brush stroke to the last created region (2 strokes, 1 region)");
AtImageView.drawThroughPoints([
[50, 100],
[100, 100],
[50, 130],
]);
I.say("Check that we are drawing in the same region");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Go back through history");
I.pressKey(["CommandOrControl", "z"]);
I.say("The brush region still should be selected (1 stroke, 1 region)");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Try the same with redo");
I.pressKey(["CommandOrControl", "shift", "z"]);
I.say("The brush region still should be selected (2 strokes, 1 region)");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
},
);
Scenario(
"Travel through history after moving the rectangle region",
async ({ I, LabelStudio, AtImageView, AtOutliner }) => {
I.amOnPage("/");
LabelStudio.init({
data: { image: IMAGE },
config: ``,
});
LabelStudio.waitForObjectsReady();
AtOutliner.seeRegions(0);
AtOutliner.dontSeeSelectedRegion();
I.say("Draw a rectangle region");
await AtImageView.lookForStage();
AtImageView.selectToolByCode("rectangle");
AtImageView.hasSelectedTool("rectangle");
AtImageView.drawByDrag(100, 100, 200, 200);
I.say("Select the region");
AtImageView.clickAt(150, 150);
I.say("Check that the region is created and selected");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Move the last created region 2 times");
AtImageView.drawByDrag(200, 200, 100, 0);
AtImageView.drawByDrag(300, 200, 0, -100);
I.say("When we move region we should do not create any other region or loose the selection (moved 2 times)");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Go back through history");
I.pressKey(["CommandOrControl", "z"]);
I.say("The rectangle region still should be selected (moved 1 time)");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Repeat going back through history");
I.pressKey(["CommandOrControl", "z"]);
I.say("The rectangle region still should be selected (moved 0 times)");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
I.say("Try the same with redo");
I.pressKey(["CommandOrControl", "shift", "z"]);
I.say("The brush region still should be selected (moved 1 time)");
AtOutliner.seeRegions(1);
AtOutliner.seeSelectedRegion();
},
);