Vue. js и Jest - Element-UI, как программно подтвердить MessageBox? - PullRequest
1 голос
/ 26 марта 2020

В настоящее время я создаю тесты с Jest, и я хотел бы знать, как программно подтвердить MessageBox ElementUI, потому что я не могу получить его HTML DOM. Чтобы он выполнял мои запросы graphql внутри then(). Я действительно не знаю, хорошая ли это практика или нет, так как я новичок в Jest.

confirmBox(
        this,
        'warning',
        'Delete Record',
        'Do you really want to delete this record?',
        true
      ).then(() => {
        this.loading = true

        deleteGame(id, (response, success) => {
          if (success) {
            this.$message({
              message: 'Record successfully deleted',
              type: 'success'
            })
            this.get()
          } else {
            this.$message({
              message: response,
              dangerouslyUseHTMLString: true,
              type: 'error'
            })
            this.loading = false
          }
        })
      })

1 Ответ

0 голосов
/ 03 апреля 2020

У Element-ui есть модульный тест для всех там компонентов, однако они написаны в карме.

Кажется, они вызывают кнопку Ok следующим образом:

it('confirm', done => {
    MessageBox.confirm('This is a piece of content', {
      title: 'Title name',
      type: 'warning'
    });
    setTimeout(() => {
      document.querySelector('.el-message-box__wrapper')
        .querySelector('.el-button--primary').click();
      expect(document.querySelector('.el-message-box__wrapper')
        .__vue__.$parent.visible).to.false;
      done();
    }, 200);
  });

Полный источник: https://github.com/ElemeFE/element/blob/dev/test/unit/specs/message-box.spec.js

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