item.spec.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. describe("Item interactions", () => {
  2. beforeEach(() => {
  3. cy.viewport(1000, 600);
  4. cy.intercept(
  5. {
  6. method: "GET",
  7. url: "/airboardgame/store/game*",
  8. },
  9. // eslint-disable-next-line quotes
  10. "[]"
  11. );
  12. cy.visit("/");
  13. cy.contains("0 Test game", { timeout: 10000 })
  14. .parent()
  15. .find(".img-wrapper")
  16. .click();
  17. // Wait board loading
  18. cy.get(".board-pane", { timeout: 10000 }).should(
  19. "have.css",
  20. "transform",
  21. "matrix(0.48, 0, 0, 0.48, -11693, -11917)"
  22. );
  23. cy.get(".item")
  24. .first()
  25. .children()
  26. .first()
  27. .should("have.css", "transform", "none");
  28. });
  29. it("should move item", () => {
  30. cy.get("img[src='/game_assets/JC.jpg']")
  31. .parents(".item")
  32. .parent()
  33. .should("have.css", "transform", "matrix(1, 0, 0, 1, 420, 400)");
  34. // Select card
  35. cy.get("img[src='/game_assets/JC.jpg']")
  36. .parents(".item")
  37. .click(500, 500, { force: true });
  38. cy.get("img[src='/game_assets/JC.jpg']")
  39. .parents(".item")
  40. .trigger("pointerdown", {
  41. buttons: 1,
  42. clientX: 430,
  43. clientY: 430,
  44. force: true,
  45. pointerId: 1,
  46. });
  47. cy.get("img[src='/game_assets/JC.jpg']")
  48. .parents(".item")
  49. .trigger("pointermove", {
  50. buttons: 1,
  51. clientX: 530,
  52. clientY: 530,
  53. force: true,
  54. pointerId: 1,
  55. })
  56. .trigger("pointerup", {
  57. force: true,
  58. pointerId: 1,
  59. });
  60. cy.get("img[src='/game_assets/JC.jpg']")
  61. .parents(".item")
  62. .parent()
  63. .should("have.css", "transform", "matrix(1, 0, 0, 1, 628, 608.5)");
  64. });
  65. it("should flip item", () => {
  66. // Check before
  67. cy.get("img[src='/game_assets/JC.jpg']")
  68. .siblings("img[src='/game_assets/Red_back.jpg']")
  69. .should("have.css", "opacity", "0");
  70. cy.get("img[src='/game_assets/JC.jpg']").should("have.css", "opacity", "1");
  71. // Select card
  72. cy.get("img[src='/game_assets/JC.jpg']")
  73. .parents(".item")
  74. .click(500, 500, { force: true });
  75. cy.get('[title = "Reveal/Hide (f)"]').click({ force: true });
  76. // Check after
  77. cy.get("img[src='/game_assets/JC.jpg']").should("have.css", "opacity", "0");
  78. cy.get("img[src='/game_assets/JC.jpg']")
  79. .siblings("img[src='/game_assets/Red_back.jpg']")
  80. .should("have.css", "opacity", "1");
  81. });
  82. it("should tap item", () => {
  83. // Check before
  84. cy.get("img[src='/game_assets/JC.jpg']")
  85. .parents(".item")
  86. .should("have.css", "transform", "matrix(1, 0, 0, 1, 0, 0)");
  87. // Select card
  88. cy.get("img[src='/game_assets/JC.jpg']")
  89. .parents(".item")
  90. .click(500, 500, { force: true });
  91. cy.get('[title = "Tap/Untap (t)"]').click({ force: true });
  92. // Check after
  93. cy.get("img[src='/game_assets/JC.jpg']")
  94. .parents(".item")
  95. .should(
  96. "have.css",
  97. "transform",
  98. "matrix(6.12323e-17, 1, -1, 6.12323e-17, 0, 0)"
  99. );
  100. });
  101. it("should hide menu", () => {
  102. // Select card
  103. cy.get("img[src='/game_assets/JC.jpg']").click(500, 500, { force: true });
  104. cy.get("img[alt='Edit']").should("exist");
  105. cy.get("img[alt='Hide menu']").click({ scrollBehavior: false });
  106. cy.get("img[alt='Edit']").should("not.exist");
  107. });
  108. });