Метод «реквизит» предназначен для запуска на 1 узле. 0 найдено вместо - PullRequest
0 голосов
/ 21 февраля 2020

Я работаю над тестовыми сценариями:

, когда я запускаю отдельные тестовые сценарии, он работает нормально, но в целом, если я запускаю ошибку метания для 2 тестовых сценариев ios.

мой код TSX:

 const onPasswordChange = useCallback((e) => {
    setStatusAlert({});
    setModel({ ...model, "password": e.target.value });
    setPasswordError(null);
  }, [setStatusAlert, setModel, setPasswordError]);

    const showPasswordInput = useCallback((e) => {
    e.preventDefault();
    const emailIsEmpty = !model.email || model.email.length < 1;
    setDisplayPasswordInput(!emailIsEmpty);
    setEmailError(emailIsEmpty ? "Email is required" : null);
  }, [model, setDisplayPasswordInput, setEmailError]);

Мои тестовые случаи:

 describe("onPasswordChange", () => {
    it("sets password to new value", async () => {
      const expectedPassword = lorem.word();
      mockedHttpHelper.get.mockImplementationOnce(jest.fn((params: IGetParams) => params.onGetSuccess({ data: { externalTypes: [] } } as AxiosResponse)));

      await usingMount(
        LoginFormComponent(defaultModelWithEmail),
        async wrapper => {
          await setTimeoutPromise(() => {
            wrapper.find(LoginForm).find("LoginPasswordFormBody").invoke("onPasswordChange")({ target: { name: "password", value: expectedPassword } });

            expect(wrapper.find(LoginForm).find("LoginPasswordFormBody").prop("model")).toEqual(expect.objectContaining({ password: expectedPassword }));
          }, 100);
        }
      );
    });

    it("empties status alert", async () => {
      const expectedError = lorem.word();
      mockedHttpHelper.get.mockImplementationOnce(jest.fn((params: IGetParams) => params.onGetSuccess({ data: { externalTypes: [] } } as AxiosResponse)));
      await usingMount(
        <GrabStatusAlertContext>
          <LoginForm model={defaultModelWithEmail} />
        </GrabStatusAlertContext>,
        async wrapper => {
          await setTimeoutPromise(() => {

            statusAlertContext.setStatusAlert({ color: "danger", text: expectedError });

            expect(statusAlertContext.statusAlert).toEqual({ color: "danger", text: expectedError });
            wrapper.find(LoginForm).find("LoginPasswordFormBody").invoke("onPasswordChange")({ target: { name: "password", value: expectedError } });
            wrapper.update();
            expect(statusAlertContext.statusAlert).toEqual({});
          }, 100);
        }
      );
    });
    it("sets passwordError to null", async () => {
      const passwordRequired = lorem.word();
      mockedHttpHelper.get.mockImplementationOnce(jest.fn((params: IGetParams) => params.onGetSuccess({ data: { externalTypes: [] } } as AxiosResponse)));

      await usingMount(
        <GrabStatusAlertContext>
          <LoginForm model={defaultModelWithEmail} />
        </GrabStatusAlertContext>,
        async wrapper => {
          await setTimeoutPromise(() => {
            // trigger passwordError by submitting an empty input and verify passwordError is not null
            wrapper.find("form").simulate("submit");

            expect(wrapper.find(LoginForm).find("LoginPasswordFormBody").prop("passwordError")).toEqual("Password is required");
            wrapper.find(LoginForm).find(`input[type="password"]`).simulate("change", { target: { name: "password", value: passwordRequired } });
            wrapper.update();
            expect(wrapper.find(LoginForm).find("LoginPasswordFormBody").prop("passwordError")).toEqual(null);
          }, 100);
        }
      );
    });

  });

Пожалуйста, помогите мне, если я смогу решить эту проблему.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...