const assert = require("assert");
|
|
Feature("Readonly Results");
|
|
const imageExamples = new DataTable(["testName", "example", "regionName"]);
|
|
imageExamples.add(["Image BBoxes", require("../../../examples/image-bboxes"), "Hello"]);
|
imageExamples.add(["Image Ellipses", require("../../../examples/image-ellipses"), "Hello"]);
|
imageExamples.add(["Image Keypoints", require("../../../examples/image-keypoints"), "Hello"]);
|
imageExamples.add(["Image Polygons", require("../../../examples/image-polygons"), "Hello"]);
|
|
Data(imageExamples).Scenario("Image Readonly Results", async ({ I, current, LabelStudio, AtOutliner, AtImageView }) => {
|
I.amOnPage("/");
|
const { config, result: r, data } = current.example;
|
|
// mark first result as readonly
|
const result = r.map((r, i) => (i === 0 ? { ...r, readonly: true } : r));
|
|
// extracts label regions only
|
const regions = result.filter((r) => r.type.match("labels"));
|
|
LabelStudio.init({
|
annotations: [
|
{
|
id: "test",
|
result,
|
},
|
],
|
config,
|
data,
|
});
|
|
LabelStudio.waitForObjectsReady();
|
await AtImageView.lookForStage();
|
|
I.say(`Running against ${current.example.title}`);
|
I.say("Check region is selectable");
|
AtOutliner.seeRegions(regions.length);
|
AtOutliner.clickRegion(current.regionName);
|
|
I.pressKey("Backspace");
|
I.say("Results are equal after deletion attempt");
|
await LabelStudio.resultsNotChanged(result, 1);
|
|
I.say("No tranformer available");
|
const isTransformerExist = await AtImageView.isTransformerExist();
|
|
assert.equal(isTransformerExist, false);
|
I.pressKey("u");
|
|
I.say("Attempting to move a readonly region");
|
await AtImageView.dragRegion(regions, (r) => r.readonly);
|
|
I.say("Results are equal after modification attempt");
|
await LabelStudio.resultsNotChanged(result, 1);
|
AtOutliner.seeRegions(regions.length);
|
|
I.say("Attempting to move a non-readonly region");
|
await I.scrollPageToTop();
|
await AtImageView.dragRegion(regions, (r) => !r.readonly);
|
I.say("Results are not equal after modification attempt");
|
await LabelStudio.resultsChanged(result, 1);
|
|
I.say("Attempting to draw new shape");
|
I.pressKey("1");
|
|
switch (current.example.title) {
|
case "Keypoints on Image":
|
AtImageView.clickAt(100, 100);
|
break;
|
case "Polygons on Image":
|
AtImageView.drawByClickingPoints([
|
[65, 135],
|
[150, 55],
|
[240, 90],
|
[125, 265],
|
[65, 135],
|
]);
|
break;
|
default:
|
AtImageView.drawByDrag(100, 100, 200, 200);
|
break;
|
}
|
|
AtOutliner.seeRegions(regions.length + 1);
|
});
|