| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /* global Feature, Scenario */
- const { doDrawingAction } = require("./helpers");
- Feature("Test Image Region Stay Selected Between Tools");
- const OUTLINER_PANEL_WIDTH = 319;
- const PLANET = {
- color: "#00FF00",
- rgbArray: [0, 255, 0],
- };
- const MOONWALKER = {
- color: "#0000FF",
- rgbArray: [0, 0, 255],
- };
- const config = `
- <View>
- <Image name="image" value="$image" crossOrigin="anonymous" />
- <Brush name="brush" toName="image" />
- <MagicWand name="magicwand" toName="image" />
- <Labels name="labels" toName="image" fillOpacity="0.5" strokeWidth="5">
- <Label value="Planet" background="${PLANET.color}"></Label>
- <Label value="Moonwalker" background="${MOONWALKER.color}"></Label>
- </Labels>
- </View>`;
- const annotationEmpty = {
- id: "1000",
- result: [],
- };
- const data = {
- image:
- "https://htx-pub.s3.us-east-1.amazonaws.com/examples/images/nick-owuor-astro-nic-visuals-wDifg5xc9Z4-unsplash.jpg",
- };
- async function testRegion(testType, toolAccelerator, I, LabelStudio, AtImageView, AtOutliner) {
- const params = {
- config,
- data,
- annotations: [annotationEmpty],
- };
- I.amOnPage("/");
- LabelStudio.init(params);
- LabelStudio.waitForObjectsReady();
- await AtImageView.lookForStage();
- I.say(`Select ${testType} & planet class`);
- I.pressKey(toolAccelerator);
- I.pressKey("1");
- I.say("There should be no regions initially");
- AtOutliner.seeRegions(0);
- I.say(`${testType} initial region`);
- await doDrawingAction(I, {
- msg: `Initial ${testType}`,
- fromX: OUTLINER_PANEL_WIDTH + 150,
- fromY: 115,
- toX: OUTLINER_PANEL_WIDTH + 150 + 50,
- toY: 115 + 50,
- });
- I.say("There should now be a single region");
- AtOutliner.seeRegions(1);
- I.say(`Using Eraser on ${testType} region`);
- I.pressKey("E");
- I.usePlaywrightTo("Erasing", async ({ browser, browserContext, page }) => {
- await page.mouse.move(OUTLINER_PANEL_WIDTH + 150, 150);
- await page.mouse.down();
- await page.mouse.move(OUTLINER_PANEL_WIDTH + 150 + 100, 150);
- await page.mouse.up();
- });
- I.say(`Doing another ${testType} with same class after erasing`);
- I.pressKey(toolAccelerator);
- await doDrawingAction(I, {
- msg: `${testType} after erasing`,
- fromX: OUTLINER_PANEL_WIDTH + 280,
- fromY: 480,
- toX: OUTLINER_PANEL_WIDTH + 280 + 50,
- toY: 480 + 50,
- });
- I.say("There should still only be one region");
- AtOutliner.seeRegions(1);
- I.say("Zooming and selecting pan tool");
- I.click('button[aria-label="zoom-in"]');
- I.click('button[aria-label="zoom-in"]');
- I.pressKey("H");
- I.say(`Doing another ${testType} after zooming and selecting pan tool`);
- I.pressKey(toolAccelerator);
- await doDrawingAction(I, {
- msg: `${testType} after zoom and pan selected`,
- fromX: OUTLINER_PANEL_WIDTH + 400,
- fromY: 200,
- toX: OUTLINER_PANEL_WIDTH + 400 + 15,
- toY: 400 + 15,
- });
- I.say("There should still only be one region");
- AtOutliner.seeRegions(1);
- }
- Scenario("Selected brush region should stay between tools", async ({ I, LabelStudio, AtImageView, AtOutliner }) => {
- await testRegion("brush", "B", I, LabelStudio, AtImageView, AtOutliner);
- });
- Scenario(
- "Selected Magic Wand region should stay between tools",
- async ({ I, LabelStudio, AtImageView, AtOutliner }) => {
- await testRegion("magicwand", "W", I, LabelStudio, AtImageView, AtOutliner);
- },
- );
|