Feature("Readonly Regions");
|
|
const imageExamples = new DataTable(["example", "regionIndex"]);
|
|
imageExamples.add([require("../../../examples/audio-regions"), 1]);
|
|
Data(imageExamples).Scenario("Audio Readonly Regions", async ({ I, current, LabelStudio, AtOutliner, AtAudioView }) => {
|
LabelStudio.setFeatureFlags({
|
ff_front_dev_2715_audio_3_280722_short: true,
|
});
|
|
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,
|
});
|
|
await AtAudioView.waitForAudio();
|
await AtAudioView.lookForStage();
|
|
I.say("Check region is selectable");
|
AtOutliner.seeRegions(regions.length);
|
AtOutliner.clickRegion(current.regionIndex);
|
|
I.say("Attempt to move a readonly region");
|
const readonlyRegionId = regions[0].id;
|
|
await AtAudioView.moveRegion(readonlyRegionId, 100);
|
|
I.say("Results are equal after modification attempt");
|
await LabelStudio.resultsNotChanged(result);
|
|
I.say("Attempt to move a non-readonly region (and it will be selected after this)");
|
const nonReadonlyRegionId = regions[1].id;
|
|
await AtAudioView.moveRegion(nonReadonlyRegionId, 100);
|
|
I.say("Results are not equal after modification attempt");
|
await LabelStudio.resultsChanged(result);
|
|
I.pressKey("CommandOrControl+z");
|
AtOutliner.clickRegion(current.regionIndex);
|
I.pressKey("Backspace");
|
I.say("Results are equal after attempt to delete readonly region");
|
await LabelStudio.resultsNotChanged(result);
|
|
// There was a test that we can draw over readonly region,
|
// but that's not the case fo v3 anymore, so it was removed.
|
});
|