designModeToggler.component.spec.ts
2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import {ComponentTestHelper, createClass} from '../../../spec/component-test-helper';
import * as helpers from '../../../spec/helpers';
import {DesignModeTogglerComponent} from './designModeToggler.component';
import {DesignModeService} from './designMode.service';
import {INoosferoLocalStorage} from "./../../shared/models/interfaces";
describe('DesignModeToggler Component', () => {
const htmlTemplate: string = '<noosfero-design-toggler></noosfero-design-toggler>';
let helper: ComponentTestHelper<DesignModeTogglerComponent>;
beforeEach(() => {
angular.mock.module('templates');
angular.mock.module('ngSanitize');
angular.mock.module('toggle-switch');
});
let designModeService: DesignModeService;
let $localStorage = <INoosferoLocalStorage>{ currentUser: null, settings: { designMode: false } };
beforeEach((done) => {
designModeService = new DesignModeService($localStorage);
let cls = createClass({
template: htmlTemplate,
directives: [DesignModeTogglerComponent],
providers: [
helpers.createProviderToValue('DesignModeService', designModeService)
]
});
helper = new ComponentTestHelper<DesignModeTogglerComponent>(cls, done);
});
it('changes css classes representing the switch is on or off', () => {
expect(helper.debugElement.query('div.switch-animate').hasClass('switch-off')).toBeTruthy();
expect(helper.debugElement.query('div.switch-animate').hasClass('switch-on')).toBeFalsy();
helper.component.inDesignMode = true;
helper.detectChanges();
expect(helper.debugElement.query('div.switch-animate').hasClass('switch-on')).toBeTruthy();
expect(helper.debugElement.query('div.switch-animate').hasClass('switch-off')).toBeFalsy();
});
it('emits event with value "true" when changing inDesignMode to On', (done) => {
designModeService.setInDesignMode(false);
designModeService.onToggle.subscribe((designModeOn: boolean) => {
expect(designModeOn).toBeTruthy();
done();
});
helper.component.inDesignMode = true;
helper.detectChanges();
});
it('emits events with value "false" when changing inDesignMode to Off', (done) => {
helper.component.inDesignMode = true;
helper.detectChanges();
designModeService.onToggle.subscribe((designModeOn: boolean) => {
expect(designModeOn).toBeFalsy();
done();
});
helper.component.inDesignMode = false;
helper.detectChanges();
});
});