mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
|
describe("PenSize test suite", function() {
|
||
|
var penSizeService;
|
||
|
var userSettingsBackup;
|
||
|
var userSettingsPenSize;
|
||
|
|
||
|
beforeEach(function() {
|
||
|
userSettingsBackup = pskl.UserSettings;
|
||
|
|
||
|
pskl.UserSettings = {
|
||
|
PEN_SIZE : 'PEN_SIZE_TEST_KEY',
|
||
|
get : function () {
|
||
|
return userSettingsPenSize;
|
||
|
},
|
||
|
|
||
|
set : function (size) {
|
||
|
userSettingsPenSize = size;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
spyOn(pskl.UserSettings, 'get').and.callThrough();
|
||
|
spyOn(pskl.UserSettings, 'set').and.callThrough();
|
||
|
spyOn($, 'publish').and.callThrough();
|
||
|
|
||
|
|
||
|
penSizeService = new pskl.service.pensize.PenSizeService();
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
pskl.UserSettings = userSettingsBackup;
|
||
|
});
|
||
|
|
||
|
it("gets initial value from user settings", function() {
|
||
|
console.log('[PenSizeService] gets initial value from user settings');
|
||
|
userSettingsPenSize = 2;
|
||
|
|
||
|
penSizeService.init();
|
||
|
expect(penSizeService.getPenSize()).toBe(2);
|
||
|
expect(pskl.UserSettings.get).toHaveBeenCalledWith('PEN_SIZE_TEST_KEY');
|
||
|
});
|
||
|
|
||
|
it("saves valid value to user settings", function() {
|
||
|
console.log('[PenSizeService] saves valid value to user settings');
|
||
|
userSettingsPenSize = 1;
|
||
|
|
||
|
penSizeService.init();
|
||
|
penSizeService.setPenSize(3);
|
||
|
expect(penSizeService.getPenSize()).toBe(3);
|
||
|
|
||
|
expect(pskl.UserSettings.set).toHaveBeenCalledWith('PEN_SIZE_TEST_KEY', 3);
|
||
|
expect($.publish).toHaveBeenCalledWith(Events.PEN_SIZE_CHANGED);
|
||
|
});
|
||
|
|
||
|
it("skips invalid value (outside of [1, 4])", function() {
|
||
|
console.log('[PenSizeService] skips invalid value (outside of [1, 4])');
|
||
|
userSettingsPenSize = 1;
|
||
|
|
||
|
penSizeService.init();
|
||
|
// MAX_VALUE is 4
|
||
|
penSizeService.setPenSize(5);
|
||
|
expect(penSizeService.getPenSize()).toBe(1);
|
||
|
// MIN_VALUE is 1
|
||
|
penSizeService.setPenSize(0);
|
||
|
expect(penSizeService.getPenSize()).toBe(1);
|
||
|
// value should be a number
|
||
|
penSizeService.setPenSize("test");
|
||
|
expect(penSizeService.getPenSize()).toBe(1);
|
||
|
|
||
|
// nothing set in usersettings
|
||
|
expect(pskl.UserSettings.set.calls.any()).toBe(false);
|
||
|
// no event fired
|
||
|
expect($.publish.calls.any()).toBe(false);
|
||
|
});
|
||
|
});
|