Cypress не отправляет запросы на сервер ожидаемой учетной записи - PullRequest
0 голосов
/ 07 апреля 2019

Cypress не возвращал данные поиска или сохранял результаты поиска при переключении на другую страницу, которая также должна сохранять и отображать данные.

Когда я выполняю какой-то автоматический сценарий использования Cypress на моей локальной машине для результатов поиска, он должен возвращать данные, но что-то не так в случаях, когда Cypress обрабатывает данные для новых экранов.

Проверенные варианты использования приведены ниже: 1. направляясь к главному экрану 2. переход на другой аккаунт 3. поиск действующего заказа, который существует в БД

Фактический результат по Cypress: Сервер не вернул никаких данных, фактически я заметил, что запрос отправляется на учетную запись по умолчанию, а не на ожидаемую.

Фактический результат вне сеанса кипариса: Данные возвращаются нормально для ожидаемого аккаунта.

Код, включающий предварительные условия для обработки файлов cookie сеанса для запоминания переключенной учетной записи для всех запросов (utils.auth_handler) -

let server_auth_url = Cypress.env('server') + urls.server_auth;
cy.request('POST', server_auth_url, currentUser);
Cypress.Cookies.preserveOnce('session_id', 'remember_token');

Скрипт тестового полного кейса:

import * as loc from '../support/locators';
import * as urls from '../support/urls';
import * as utils from '../support/utils';
import { quick_login } from '../support/init.js';

describe('WebApp - Orders', function() {
    beforeEach(() => {
        utils.auth_handler();
    });

    before(() => {
        quick_login();
    });

    it('Orders - data loading time',function() {
        cy.visit(urls.expand_data_orders);
        cy.get(loc.switch_to_orders).click();
        cy.get(loc.graphs,{ timeout: 5000 }).should('be.visible');
        cy.get(loc.orders_table,{ timeout: 5000 }).should('be.visible');
        cy.get(loc.data_summary,{ timeout: 5000 }).should('be.visible');
    });

    it('Orders - Search data validation', function () {
        cy.get(loc.order_results_row).first().then(($id_value) => {
            // store the button's text
            let txt = $id_value.text();
            cy.log(txt);
            cy.get(loc.search_field).type(txt + '{enter}');
        })
    });
});

enter image description here

Мой главный вопрос заключается в том, как обрабатывать сценарии использования при смене учетных записей и хотеть использовать новую коммутируемую учетную запись в качестве значения по умолчанию для любого запроса сервера / Что не так с моим текущим кодом?

Спасибо.

...