hide-all.cy.ts 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. import { ImageView, LabelStudio, Relations, Sidebar, Tooltip } from "@humansignal/frontend-test/helpers/LSF";
  2. const config = `
  3. <View>
  4. <Image name="img" value="$image"></Image>
  5. <RectangleLabels name="tag" toName="img">
  6. <Label value="Planet"></Label>
  7. <Label value="Moonwalker" background="blue"></Label>
  8. <Label value="Moonwalker 1" background="red"></Label>
  9. <Label value="Moonwalker 2" background="pink"></Label>
  10. <Label value="Moonwalker 3" background="yellow"></Label>
  11. </RectangleLabels>
  12. </View>
  13. `;
  14. const image =
  15. "https://htx-pub.s3.us-east-1.amazonaws.com/examples/images/nick-owuor-astro-nic-visuals-wDifg5xc9Z4-unsplash.jpg";
  16. const task = {
  17. id: 1,
  18. annotations: [
  19. {
  20. id: 1001,
  21. result: [
  22. {
  23. id: "Dx_aB91ISN",
  24. source: "$image",
  25. from_name: "tag",
  26. to_name: "img",
  27. type: "rectanglelabels",
  28. origin: "manual",
  29. value: {
  30. height: 10.458911419423693,
  31. rotation: 0,
  32. width: 12.4,
  33. x: 50.8,
  34. y: 5.866,
  35. rectanglelabels: ["Moonwalker"],
  36. },
  37. },
  38. {
  39. id: "Dx_aB91INs",
  40. source: "$image",
  41. from_name: "tag",
  42. to_name: "img",
  43. type: "rectanglelabels",
  44. origin: "manual",
  45. value: {
  46. height: 10.458911419423693,
  47. rotation: 0,
  48. width: 12.4,
  49. x: 50.8,
  50. y: 25.866,
  51. rectanglelabels: ["Moonwalker 2"],
  52. },
  53. },
  54. {
  55. id: "Dx_aB91ANs",
  56. source: "$image",
  57. from_name: "tag",
  58. to_name: "img",
  59. type: "rectanglelabels",
  60. origin: "manual",
  61. value: {
  62. height: 10.458911419423693,
  63. rotation: 0,
  64. width: 12.4,
  65. x: 50.8,
  66. y: 45.866,
  67. rectanglelabels: ["Moonwalker 3"],
  68. },
  69. },
  70. {
  71. id: "Dx_aB19ISN",
  72. source: "$image",
  73. from_name: "tag",
  74. to_name: "img",
  75. type: "rectanglelabels",
  76. origin: "manual",
  77. value: {
  78. height: 10.458911419423693,
  79. rotation: 0,
  80. width: 12.4,
  81. x: 50.8,
  82. y: 65.866,
  83. rectanglelabels: ["Planet"],
  84. },
  85. },
  86. ],
  87. },
  88. ],
  89. predictions: [],
  90. data: { image },
  91. };
  92. describe("Relations: Hide/Show all relations", () => {
  93. beforeEach(() => {
  94. LabelStudio.init({ config, task });
  95. ImageView.waitForImage();
  96. Relations.hasRelations(0);
  97. });
  98. it("should exist and be disabled without existed relations", () => {
  99. Relations.showAllRelationsButton.should("be.visible").should("be.disabled");
  100. });
  101. it("should exist and be enabled with existed relations", () => {
  102. Sidebar.toggleRegionSelection(0);
  103. Relations.toggleCreation();
  104. ImageView.clickAtRelative(0.51, 0.26);
  105. Relations.hasRelations(1);
  106. Relations.hasRelation("Moonwalker", "Moonwalker 2");
  107. ImageView.clickAtRelative(0.51, 0.06);
  108. Relations.toggleCreation();
  109. ImageView.clickAtRelative(0.51, 0.46);
  110. Relations.hasRelations(2);
  111. Relations.hasRelation("Moonwalker", "Moonwalker 3");
  112. ImageView.clickAtRelative(0.51, 0.66);
  113. Relations.toggleCreation();
  114. ImageView.clickAtRelative(0.51, 0.06);
  115. Relations.hasRelations(3);
  116. Relations.hideAllRelationsButton.should("be.visible").should("be.enabled");
  117. });
  118. it("should hide all relations", () => {
  119. Sidebar.toggleRegionSelection(0);
  120. Relations.toggleCreation();
  121. ImageView.clickAtRelative(0.51, 0.26);
  122. Relations.hasRelations(1);
  123. Relations.hasRelation("Moonwalker", "Moonwalker 2");
  124. ImageView.clickAtRelative(0.51, 0.06);
  125. Relations.toggleCreation();
  126. ImageView.clickAtRelative(0.51, 0.46);
  127. Relations.hasRelations(2);
  128. Relations.hasRelation("Moonwalker", "Moonwalker 3");
  129. ImageView.clickAtRelative(0.51, 0.66);
  130. Relations.toggleCreation();
  131. ImageView.clickAtRelative(0.51, 0.06);
  132. Relations.hasRelations(3);
  133. Relations.hasHiddenRelations(0);
  134. Relations.hideAllRelationsButton.click({ force: true });
  135. Relations.hasHiddenRelations(3);
  136. });
  137. it("should show all relations", () => {
  138. Sidebar.toggleRegionSelection(0);
  139. Relations.toggleCreation();
  140. ImageView.clickAtRelative(0.51, 0.26);
  141. Relations.hasRelations(1);
  142. Relations.hasRelation("Moonwalker", "Moonwalker 2");
  143. ImageView.clickAtRelative(0.51, 0.06);
  144. Relations.toggleCreation();
  145. ImageView.clickAtRelative(0.51, 0.46);
  146. Relations.hasRelations(2);
  147. Relations.hasRelation("Moonwalker", "Moonwalker 3");
  148. ImageView.clickAtRelative(0.51, 0.66);
  149. Relations.toggleCreation();
  150. ImageView.clickAtRelative(0.51, 0.06);
  151. Relations.hasRelations(3);
  152. Relations.hasHiddenRelations(0);
  153. Relations.hideAllRelationsButton.click({ force: true });
  154. Relations.hasHiddenRelations(3);
  155. Relations.showAllRelationsButton.click({ force: true });
  156. Relations.hasHiddenRelations(0);
  157. });
  158. it("should show rest relations", () => {
  159. Sidebar.toggleRegionSelection(0);
  160. Relations.toggleCreation();
  161. ImageView.clickAtRelative(0.51, 0.26);
  162. Relations.hasRelations(1);
  163. Relations.hasRelation("Moonwalker", "Moonwalker 2");
  164. ImageView.clickAtRelative(0.51, 0.06);
  165. Relations.toggleCreation();
  166. ImageView.clickAtRelative(0.51, 0.46);
  167. Relations.hasRelations(2);
  168. Relations.hasRelation("Moonwalker", "Moonwalker 3");
  169. ImageView.clickAtRelative(0.51, 0.66);
  170. Relations.toggleCreation();
  171. ImageView.clickAtRelative(0.51, 0.06);
  172. Relations.hasRelations(3);
  173. Relations.toggleRelationVisibility(1);
  174. Relations.hasHiddenRelations(1);
  175. Relations.showAllRelationsButton.click({ force: true });
  176. Relations.hasHiddenRelations(0);
  177. });
  178. it("should have tooltip for hide action", () => {
  179. Sidebar.toggleRegionSelection(0);
  180. Relations.toggleCreation();
  181. ImageView.clickAtRelative(0.51, 0.26);
  182. Relations.hasRelations(1);
  183. Relations.hasRelation("Moonwalker", "Moonwalker 2");
  184. ImageView.clickAtRelative(0.51, 0.06);
  185. Relations.toggleCreation();
  186. ImageView.clickAtRelative(0.51, 0.46);
  187. Relations.hasRelations(2);
  188. Relations.hasRelation("Moonwalker", "Moonwalker 3");
  189. ImageView.clickAtRelative(0.51, 0.66);
  190. Relations.toggleCreation();
  191. ImageView.clickAtRelative(0.51, 0.06);
  192. Relations.hasRelations(3);
  193. Relations.hideAllRelationsButton.trigger("mouseover");
  194. Tooltip.hasText("Hide all");
  195. });
  196. });