1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| Feature("Outliner regions drag and drop").tag("@regress");
|
| const CONFIG = `<View>
| <Labels name="label" toName="text">
| <Label value="Label" background="purple"/>
| </Labels>
| <Text name="text" value="$text" inline="true"/>
| </View>`;
|
| const TEXT = "qwertyuiopasdfghjklzxcvbnm";
|
| function generateResults(n) {
| const results = [];
|
| for (let k = 0; k < n; k++) {
| results.push({
| id: `${k}`,
| from_name: "label",
| to_name: "text",
| type: "labels",
| origin: "manual",
| value: {
| start: k,
| end: k + 1,
| text: TEXT.split("")[k],
| labels: ["Label"],
| },
| });
| }
| return results;
| }
|
| Scenario("Dnd at the outliner after switching annotations", async ({ I, LabelStudio, AtOutliner, AtTopbar }) => {
| I.amOnPage("/");
| LabelStudio.init({
| annotations: [
| {
| id: "test_02",
| result: generateResults(10),
| },
| {
| id: "test_01",
| result: generateResults(10),
| },
| ],
| config: CONFIG,
| data: { text: TEXT },
| });
|
| AtOutliner.seeRegions(10);
|
| I.say("Check that drag and drop interaction works");
| await AtOutliner.dragAndDropRegion(7, 3);
|
| I.say("Switch annotation");
| AtTopbar.openAnnotaions();
| AtTopbar.selectAnnotationAt(2);
| AtOutliner.seeRegions(10);
|
| I.say("Check that we still able to drag and drop regions");
| await AtOutliner.dragAndDropRegion(7, 3);
|
| // The potential errors should be caught by `errorsCollector` plugin
| });
|
|