From c60c96840938fda468979850b375c2ef4a5f459d Mon Sep 17 00:00:00 2001 From: Gabo Date: Fri, 4 Dec 2020 09:41:30 -0300 Subject: [PATCH] feat(mapa-camas): actualiza tests de pase de unidad organizativa --- .../internacion/medica/movimientos.spec.js | 66 +++++++++++++++++-- .../internacion/maquina-estados-default.json | 6 +- cypress/plugins/seed-internacion.js | 10 ++- cypress/support/mapa-camas.js | 1 + 4 files changed, 75 insertions(+), 8 deletions(-) diff --git a/cypress/integration/apps/rup/internacion/medica/movimientos.spec.js b/cypress/integration/apps/rup/internacion/medica/movimientos.spec.js index 164387cf..d95753d0 100644 --- a/cypress/integration/apps/rup/internacion/medica/movimientos.spec.js +++ b/cypress/integration/apps/rup/internacion/medica/movimientos.spec.js @@ -12,10 +12,15 @@ const moment = require('moment'); cy.loginCapa(capa).then(([user, t, pacientesCreados]) => { pacientes = pacientesCreados; token = t; - cy.factoryInternacion({ configCamas: [{ estado: 'disponible' }] }) + cy.factoryInternacion({ maquinaEstados: { configPases: { sala: '5f6b820487dac8aa716f8c81', allowCama: true }}, + configCamas: [ + { estado: 'disponible', count: 2}, + { estado: 'ocupada', pacientes: [pacientes[1]], fechaIngreso: moment().subtract(1, 'hour').toDate()}, + { estado: 'ocupada', pacientes: [pacientes[2]], fechaIngreso: moment().subtract(1, 'hour').toDate(), unidadOrganizativa: '309901009'} + ]}) .then(camasCreadas => { camas = camasCreadas; - cy.factoryInternacion({ sala: true, config: [{ estado: 'ocupada', pacientes: [pacientes[0]], fechaIngreso: moment().subtract(1, 'hour').toDate() }] }) + cy.factoryInternacion({ sala: true, config: [{ idFijo: '5f6b820487dac8aa716f8c81', estado: 'ocupada', pacientes: [pacientes[0]], fechaIngreso: moment().subtract(1, 'hour').toDate() }] }) .then(salasCreadas => { salas = salasCreadas; return cy.goto('/mapa-camas', token); @@ -29,13 +34,14 @@ const moment = require('moment'); cy.route('GET', `**/api/modules/rup/internacion/${capa}/**`).as('getHistorial'); cy.route('GET', '**/api/modules/rup/internacion/camas?**').as('getCamas'); cy.route('PATCH', '**/api/modules/rup/internacion/camas/**').as('patchCamas'); + cy.route('POST', '**/api/modules/rup/internacion/sala-comun/**').as('ingresoSala'); cy.route('PATCH', '**/api/modules/rup/internacion/sala-comun/**').as('egresoSalaComun'); cy.viewport(1920, 1080); }); it('Movimiento Sala -> Cama', () => { - cy.getCama(pacientes[0].apellido).click(); + cy.getCama(pacientes[0].nombre).click(); cy.wait('@getHistorial').then((xhr) => { expect(xhr.status).to.be.eq(200); @@ -44,7 +50,7 @@ const moment = require('moment'); cy.get('plex-title[titulo="DATOS DE CAMA"] div').eq(2).plexButtonIcon('menos').click(); cy.plexButton('Pase de unidad organizativa').click(); - cy.plexSelectType('label="Cama"', 'CAMA'); + cy.plexSelectType('label="Cama"', camas[0].cama.nombre); cy.plexButtonIcon('check').click(); @@ -58,7 +64,57 @@ const moment = require('moment'); cy.swal('confirm', 'Pase de unidad organizativa exitoso'); - cy.getCama().should('have.length', 2); + cy.getCama().should('have.length', 5); + }); + + it('Movimiento Cama -> Sala Directamente', () => { + cy.getCama(pacientes[1].nombre).click(); + + cy.wait('@getHistorial').then((xhr) => { + expect(xhr.status).to.be.eq(200); + }); + + cy.get('plex-title[titulo="DATOS DE CAMA"] div').eq(2).plexButtonIcon('menos').click(); + cy.plexButton('Pase de unidad organizativa').click(); + + cy.plexButtonIcon('check').click(); + + cy.wait('@ingresoSala').then((xhr) => { + expect(xhr.status).to.be.eq(200); + }); + + cy.wait('@patchCamas').then((xhr) => { + expect(xhr.status).to.be.eq(200); + }); + + cy.swal('confirm', 'Pase de unidad organizativa exitoso'); + + cy.getCama().should('have.length', 6); + }); + + it('Movimiento Cama -> Cama Seleccionada', () => { + cy.getCama(pacientes[2].nombre).click(); + + cy.wait('@getHistorial').then((xhr) => { + expect(xhr.status).to.be.eq(200); + }); + + cy.get('plex-title[titulo="DATOS DE CAMA"] div').eq(2).plexButtonIcon('menos').click(); + cy.plexButton('Pase de unidad organizativa').click(); + + cy.plexBool('label="¿Desea elegir cama destino?"', true); + + cy.plexSelectType('label="Cama"', 'CAMA'); + + cy.plexButtonIcon('check').click(); + + cy.wait('@patchCamas').then((xhr) => { + expect(xhr.status).to.be.eq(200); + }); + + cy.swal('confirm', 'Pase de unidad organizativa exitoso'); + + cy.getCama().should('have.length', 6); }); }); }); \ No newline at end of file diff --git a/cypress/plugins/data/internacion/maquina-estados-default.json b/cypress/plugins/data/internacion/maquina-estados-default.json index 111c1d46..8596de60 100644 --- a/cypress/plugins/data/internacion/maquina-estados-default.json +++ b/cypress/plugins/data/internacion/maquina-estados-default.json @@ -44,5 +44,9 @@ "icon": "menos", "accion": "desocuparCama" } - ] + ], + "configPases": { + "sala": "5f6b820487dac8aa716f8c81", + "allowCama": true + } } \ No newline at end of file diff --git a/cypress/plugins/seed-internacion.js b/cypress/plugins/seed-internacion.js index c64817b8..59cd2c13 100644 --- a/cypress/plugins/seed-internacion.js +++ b/cypress/plugins/seed-internacion.js @@ -14,6 +14,7 @@ module.exports.createMaquinaEstados = async (mongoUri, params) => { dto.organizacion = params.organizacion || ObjectId(dto.organizacion); dto.ambito = params.ambito || dto.ambito; dto.capa = params.capa || dto.capa; + dto.configPases.sala = ObjectId(params.configPases.sala); if (params.estados && params.estados.length > 0) { dto.estados.push(...params.estados); @@ -201,7 +202,13 @@ module.exports.createSala = async (mongoUri, params) => { let dtoSala = require('./data/internacion/sala-default'); dtoSala = JSON.parse(JSON.stringify(dtoSala)); - + + if (params.idFijo) { + dtoSala['_id'] = ObjectId(params.idFijo); + } else { + dtoSala._id = new ObjectId(); + } + dtoSala.organizacion = params.organizacion || dtoSala.organizacion; dtoSala.organizacion._id = ObjectId(dtoSala.organizacion._id); dtoSala.organizacion.id = ObjectId(dtoSala.organizacion._id); @@ -227,7 +234,6 @@ module.exports.createSala = async (mongoUri, params) => { }); } - dtoSala._id = new ObjectId(); await salaDB.insertOne(dtoSala); // SNAPSHOT DE SALA diff --git a/cypress/support/mapa-camas.js b/cypress/support/mapa-camas.js index 62ca01b4..1984f6d7 100644 --- a/cypress/support/mapa-camas.js +++ b/cypress/support/mapa-camas.js @@ -81,6 +81,7 @@ function crearSalas(params) { const paciente = (elemento.pacientes) ? elemento.pacientes[i] : null; salas.push({ + idFijo: elemento.idFijo, estado: elemento.estado, unidadesOrganizativas: elemento.unidadesOrganizativas, sectores: elemento.sectores,