1.0.5 • Published 7 years ago

ember-window v1.0.5

Weekly downloads
1
License
MIT
Repository
-
Last release
7 years ago

Ember-window

This service exists as a layer on top of the javascript window Object, to be able to mock it easily in tests (without mocking this service in tests, the https://localhost:4200/tests page would be redirected when using window.location.href=xxx in our code). It may also be useful if we want to run the app outside a browser at some point . In this service we can get and set the properties applied to the window Object, so this allows observing them / adding CPs if ever needed.

Usage is the same as for the javascript window Object:

instead of:

window.location.href = '/Your_Account/Account_Details/';

use:

window: Ember.inject.service(),
..
this.get('window.location').href = '/Your_Account/Account_Details/';

In your tests, you can use something like:

// tests/helpers/start-app.js
export default function startApp(attrs) {
  let application;

  let attributes = Ember.merge({}, config.APP);
  attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;

  Ember.run(() => {
    let windowService;

    application = Application.create(attributes);
    windowService = application.resolveRegistration('service:window');

    // Mock the window service
    windowService.reopen({
      windowObject: {
        location: {
          pathname: 'my-account',
          href: null
        }
      }
    });

    application.setupForTesting();
    application.injectTestHelpers();
  });

  return application;
}
1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.0.0

7 years ago