Как установить флажок в тесте A JQuery - PullRequest
1 голос
/ 19 июня 2020

Я тестирую функцию, которая меняет отображение div с «none» на «block», когда флажок установлен. Код работает на веб-сайте, и у меня есть еще один тест на том же фрагменте кода, который проходит (Javascript проверяет, установлен ли флажок при загрузке страницы. Если нет, он меняет div на 'none').

Тест:

QUnit.test("optional fields visible when checkbox selected", function (assert) {
      assert.equal($('#optional_fields').css('display'), 'none');
      $('#id_taken_test_before').prop('checked', true);
      assert.equal($('#optional_fields').css('display'), 'block');
    });

Связанный html код:

<div class="form-group">
      <div id="div_id_taken_test_before" class="custom-control custom-checkbox">
        <input type="checkbox" name="taken_test_before" class="checkboxinput custom-control-input" 
        id="id_taken_test_before">
        <label for="id_taken_test_before" class="custom-control-label">Have you taken the test 
        before</label>
      </div>
    </div>

И связанный javascript код:

$("#div_id_taken_test_before").change(function(){
    var questions = document.getElementById("optional_fields");

    if($('#id_taken_test_before').is(':checked')){
       questions.style.display = "block";
    }else{
        questions.style.display = "none";
    }
});

Я пытаюсь установить флажок, который затем должен вызвать мой javascript и изменить div 'optional_fields' на 'block'.

Событие: checked никогда не срабатывает. Я пробовал много чего -

(div_id_taken_test_before').prop...
.click()

и c, но просто не могу установить этот флажок, чтобы поменять его на «установлен».

Спасибо.

...