|
| 1 | +import { draggable } from '@pages/Interactions/GX3-132-Draggable.page'; |
| 2 | +import { faker } from '@faker-js/faker'; |
| 3 | + |
| 4 | +describe('US GX3-132 | ToolsQA | Interactions | Dragabble', () => { |
| 5 | + const randomX = faker.datatype.number({ min: 0, max: 450 }); |
| 6 | + const randomY = faker.datatype.number({ min: 0, max: 450 }); |
| 7 | + beforeEach('', () => { |
| 8 | + cy.visit('/dragabble'); |
| 9 | + cy.url().should('contain', 'dragabble'); |
| 10 | + }); |
| 11 | + it('132 | TC1: Validar que se muestren las pestañas “Simple”, “Axis Restricted”, “Container Restricted”, “Cursor Style”', () => { |
| 12 | + draggable.get.simpleTab().should('be.visible'); |
| 13 | + draggable.get.axisRestrictedTab().should('be.visible'); |
| 14 | + draggable.get.containerRestrictedTab().should('be.visible'); |
| 15 | + draggable.get.cursorStyleTab().should('be.visible'); |
| 16 | + draggable.get.simpleTabVisible().should('be.visible'); |
| 17 | + }); |
| 18 | + |
| 19 | + it('132 | TC2: Validar que "Drag me" se puede arrastrar de forma aleatoria en cualquier dirección de la pestaña “Simple”', () => { |
| 20 | + draggable.get.simpleTab().click(); |
| 21 | + draggable.moveRandom(randomX, randomY); |
| 22 | + draggable.get.buttonDragBox().should('have.css', 'left', `${randomX}px`); |
| 23 | + draggable.get.buttonDragBox().should('have.css', 'top', `${randomY}px`); |
| 24 | + }); |
| 25 | + it('132 | TC3: Validar que "Only X" y "Only Y" se pueden mover aleatoriamente en el eje correspondiente según su nombre X o Y de la pestaña “Axis Restricted”', () => { |
| 26 | + draggable.get.axisRestrictedTab().click(); |
| 27 | + draggable.moveRandomX(randomX, 0); |
| 28 | + draggable.get.buttonOnlyX().should('have.css', 'left', `${randomX}px`); |
| 29 | + draggable.get.buttonOnlyX().should('have.css', 'top', `${0}px`); |
| 30 | + draggable.moveRandomY(0, randomY); |
| 31 | + draggable.get.buttonOnlyY().should('have.css', 'top', `${randomY}px`); |
| 32 | + draggable.get.buttonOnlyY().should('have.css', 'left', `${0}px`); |
| 33 | + }); |
| 34 | + it('132 | TC4: Validar que “I`m contained within the box” y “Im contained within my parent” se pueden mover aleatoriamente solo dentro del área de acción delimitada de la pestaña “Container Restricted”', () => { |
| 35 | + const ramdomBoxX = faker.datatype.number({ min: 0, max: 280 }); |
| 36 | + const ramdomBoxY = faker.datatype.number({ min: 0, max: 106 }); |
| 37 | + const ramdomParentX = faker.datatype.number({ min: 0, max: 13 }); |
| 38 | + const ramdomParentY = faker.datatype.number({ min: 0, max: 86 }); |
| 39 | + |
| 40 | + draggable.get.containerRestrictedTab().click(); |
| 41 | + draggable.moveRandomDelimitedBox(ramdomBoxX, ramdomBoxY); |
| 42 | + draggable.get.textContainedBox().should('have.css', 'left', `${ramdomBoxX}px`); |
| 43 | + draggable.get.textContainedBox().should('have.css', 'top', `${ramdomBoxY}px`); |
| 44 | + |
| 45 | + draggable.moveRandomDelimitedParent(ramdomParentX, ramdomParentY); |
| 46 | + draggable.get.textContainedParent().should('have.css', 'left', `${ramdomParentX}px`); |
| 47 | + draggable.get.textContainedParent().should('have.css', 'top', `${ramdomParentY}px`); |
| 48 | + }); |
| 49 | + it('132 | TC5: Validar que el cursor permanece en el centro del cuadro "I will always stick to the center” de la pestaña Cursor Style”', () => { |
| 50 | + draggable.get.cursorStyleTab().click(); |
| 51 | + const ramdomCenterX = faker.datatype.number({ min: 450, max: 1400 }); |
| 52 | + const ramdomCenterY = faker.datatype.number({ min: 450, max: 1000 }); |
| 53 | + cy.log(ramdomCenterX, ramdomCenterY); |
| 54 | + draggable.get |
| 55 | + .cursorCenter() |
| 56 | + .trigger('mousedown', { which: 1 }) |
| 57 | + .trigger('mousemove', { which: 1, pageX: ramdomCenterX, pageY: ramdomCenterY }); |
| 58 | + draggable.get.body().should('have.css', 'cursor', 'move'); |
| 59 | + }); |
| 60 | + it('132 | TC6: Validar que el cursor permanece en la parte superior del cuadro "My cursor is at top left” de la pestaña Cursor Style”', () => { |
| 61 | + draggable.get.cursorStyleTab().click(); |
| 62 | + const ramdomCenterX = faker.datatype.number({ min: 450, max: 1400 }); |
| 63 | + const ramdomCenterY = faker.datatype.number({ min: 450, max: 1000 }); |
| 64 | + cy.log(ramdomCenterX, ramdomCenterY); |
| 65 | + draggable.get |
| 66 | + .cursorTopLeft() |
| 67 | + .trigger('mousedown', { which: 1 }) |
| 68 | + .trigger('mousemove', { which: 1, pageX: ramdomCenterX, pageY: ramdomCenterY }); |
| 69 | + draggable.get.body().should('have.css', 'cursor', 'crosshair'); |
| 70 | + }); |
| 71 | + it('132 | TC7: Validar que el cursor permanece en en la parte inferior central del cuadro "My cursor is at bottom” de la pestaña Cursor Style”', () => { |
| 72 | + draggable.get.cursorStyleTab().click(); |
| 73 | + const ramdomCenterX = faker.datatype.number({ min: 450, max: 1400 }); |
| 74 | + const ramdomCenterY = faker.datatype.number({ min: 450, max: 1000 }); |
| 75 | + cy.log(ramdomCenterX, ramdomCenterY); |
| 76 | + draggable.get |
| 77 | + .cursorBottom() |
| 78 | + .trigger('mousedown', { which: 1 }) |
| 79 | + .trigger('mousemove', { which: 1, pageX: ramdomCenterX, pageY: ramdomCenterY }); |
| 80 | + draggable.get.body().should('have.css', 'cursor', 'auto'); |
| 81 | + }); |
| 82 | +}); |
0 commit comments