0

I wrote the following html file:

<!DOCTYPE html> <html lang="en"> <head>
    <meta charset="UTF-8">
    <title></title> </head> <body>
    <h1> HELLO WORLD </h1>
    <button type="button"> CLICK HERE</button>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script>
        $('button').click(function() {
            $('h1').text("Thank you");
            var ans = prompt("Please type your age");
            if (ans > 80) {
                $('h1').text("You're old");
            }
        })
    </script> </body> </html>

I want to test that once the user clicks on the button and gives an age older than 80, the page behaves as expected and the h1-tag text changes to "You're old".

My question is how to write a Jasmine spec to test this feature?

CrazySynthax
  • 13,662
  • 34
  • 99
  • 183

1 Answers1

1

You need to use "Spy" object to intercept "prompt" function and return your own value. After check the caption text. The code may look like ...

deascribe("test inline function:", function() {
  it("caption should be 'too old' for age of more than 80", function () {
    spyOn(window, 'prompt').and.returnValue(81);
    $('button').click();
    expect($('h1').text()).toBe("You're old");
  });
});
Slava Ivanov
  • 6,666
  • 2
  • 23
  • 34