Jasmine tests check if html contains text and return boolean

expect(view.$el.html()).toContain('Admin');

The view does contain the word 'Admin' so I was expecting it to return true. How can I achieve this?

expect(view.$el.html()).toContain('Admin');

This returns undefined. How can I make it return true?

<header class="main">
  <div id="heading">
    <ul class="header-view right">
      <li class="inline"><a href="#link" class="button help-btn tab-btn"><span>  </span>Help</a></li>
      <li class="inline last"><a href="#og" class="button admin-btn tab-btn expand-admin"><span></span>Admin</a></li>
    </ul>
  </div>
</header>

This is what is returned from view.$el.html

Please help.

Answers


From the Jasmine docs:

The 'toContain' matcher is for finding an item in an Array

You are trying to find a string inside a string so I would do something like this:

expect(view.$el.html().indexOf('Admin') !== -1).toBe(true);

toContain() now can actually be used for substring in string checks:

expect(view.$el.html()).toContain('Admin');

Need Your Help

Database schema to track random settings in website for marketing

database-design schema customization entity-relationship

I have Flex based consumer website where I would like to change various look and feel type settings based on random and other criteria, and then track these through to what results in the most sale...

How are decorators (annotations) compiled in Typescript?

typescript angular

In Angular 2, I can create a component, like this: