mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Palette creator can save palettes to local storage
This commit is contained in:
23
test/js/model/PaletteTest.js
Normal file
23
test/js/model/PaletteTest.js
Normal file
@@ -0,0 +1,23 @@
|
||||
describe("Palette", function() {
|
||||
|
||||
beforeEach(function() {});
|
||||
afterEach(function() {});
|
||||
|
||||
it("moves colors correctly", function() {
|
||||
// when
|
||||
var colors = [
|
||||
'#000000',
|
||||
'#111111',
|
||||
'#222222'
|
||||
];
|
||||
var palette = new pskl.model.Palette('id', 'name', colors);
|
||||
|
||||
// then
|
||||
palette.move(2,0);
|
||||
|
||||
// verify
|
||||
expect(palette.get(0)).toBe('#222222');
|
||||
expect(palette.get(1)).toBe('#000000');
|
||||
expect(palette.get(2)).toBe('#111111');
|
||||
});
|
||||
});
|
||||
144
test/js/service/PaletteServiceTest.js
Normal file
144
test/js/service/PaletteServiceTest.js
Normal file
@@ -0,0 +1,144 @@
|
||||
describe("Palette Service", function() {
|
||||
var paletteService = null;
|
||||
var localStorage = {};
|
||||
|
||||
var localStorageService;
|
||||
|
||||
|
||||
var addPalette = function (id, name, color) {
|
||||
var palette = new pskl.model.Palette(id, name, [color]);
|
||||
paletteService.savePalette(palette);
|
||||
};
|
||||
|
||||
var verifyPaletteIsStored = function (paletteId) {
|
||||
var palette = paletteService.getPaletteById(paletteId);
|
||||
expect(palette).not.toBeNull();
|
||||
return palette;
|
||||
};
|
||||
|
||||
var verifyPaletteIsNotStored = function (paletteId) {
|
||||
var palette = paletteService.getPaletteById(paletteId);
|
||||
expect(palette).toBeNull();
|
||||
};
|
||||
|
||||
beforeEach(function() {
|
||||
localStorage = {};
|
||||
|
||||
localStorageService = {
|
||||
getItem : function (key) {
|
||||
if (localStorage.hasOwnProperty(key)) {
|
||||
return localStorage[key];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
setItem : function (key, item) {
|
||||
localStorage[key] = item;
|
||||
}
|
||||
};
|
||||
|
||||
paletteService = new pskl.service.PaletteService();
|
||||
paletteService.localStorageService = localStorageService;
|
||||
});
|
||||
|
||||
it("returns an empty array when no palette is stored", function() {
|
||||
spyOn(localStorageService, 'getItem').and.callThrough();
|
||||
|
||||
var palettes = paletteService.getPalettes();
|
||||
expect(Array.isArray(palettes)).toBe(true);
|
||||
expect(palettes.length).toBe(0);
|
||||
expect(localStorageService.getItem).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("can store a palette", function() {
|
||||
// when
|
||||
spyOn(localStorageService, 'setItem').and.callThrough();
|
||||
|
||||
var paletteId = 'palette-id';
|
||||
var paletteName = 'palette-name';
|
||||
var paletteColor = '#001122';
|
||||
|
||||
// then
|
||||
addPalette(paletteId, paletteName, paletteColor);
|
||||
var palettes = paletteService.getPalettes();
|
||||
|
||||
// verify
|
||||
expect(localStorageService.setItem).toHaveBeenCalled();
|
||||
|
||||
expect(Array.isArray(palettes)).toBe(true);
|
||||
expect(palettes.length).toBe(1);
|
||||
|
||||
var retrievedPalette = paletteService.getPaletteById(paletteId);
|
||||
expect(retrievedPalette).toBeDefined();
|
||||
expect(retrievedPalette.id).toBe(paletteId);
|
||||
expect(retrievedPalette.name).toBe(paletteName);
|
||||
|
||||
var colors = retrievedPalette.colors;
|
||||
expect(Array.isArray(colors)).toBe(true);
|
||||
expect(colors.length).toBe(1);
|
||||
|
||||
var color = colors[0];
|
||||
expect(color).toBe(paletteColor);
|
||||
});
|
||||
|
||||
it("updates a palette", function() {
|
||||
// when
|
||||
var paletteId = 'palette-id';
|
||||
var paletteName = 'palette-name';
|
||||
var paletteColor1 = '#001122';
|
||||
var paletteColor2 = '#334455';
|
||||
|
||||
// then
|
||||
addPalette(paletteId, paletteName, paletteColor1);
|
||||
addPalette(paletteId, paletteName, paletteColor2);
|
||||
|
||||
// verify
|
||||
var palettes = paletteService.getPalettes();
|
||||
expect(palettes.length).toBe(1);
|
||||
|
||||
var retrievedPalette = paletteService.getPaletteById(paletteId);
|
||||
var color = retrievedPalette.colors[0];
|
||||
expect(color).toBe(paletteColor2);
|
||||
});
|
||||
|
||||
it("can delete a palette", function() {
|
||||
// when
|
||||
addPalette('palette-id', 'palette-name', ['#001122']);
|
||||
|
||||
// then
|
||||
paletteService.deletePaletteById('palette-id');
|
||||
|
||||
// verify
|
||||
var palettes = paletteService.getPalettes();
|
||||
expect(palettes.length).toBe(0);
|
||||
});
|
||||
|
||||
it("attempts to delete unexisting palette without side effect", function() {
|
||||
// when
|
||||
addPalette('palette-id', 'palette-name', ['#001122']);
|
||||
|
||||
// then
|
||||
var palettes = paletteService.getPalettes();
|
||||
paletteService.deletePaletteById('some-other-palette-id');
|
||||
|
||||
// verify
|
||||
expect(palettes.length).toBe(1);
|
||||
});
|
||||
|
||||
it("deletes the correct palette when several palettes are stored", function() {
|
||||
// when
|
||||
addPalette('palette-id-0', 'palette-name-0', ['#000000']);
|
||||
addPalette('palette-id-1', 'palette-name-1', ['#111111']);
|
||||
addPalette('palette-id-2', 'palette-name-2', ['#222222']);
|
||||
|
||||
// then
|
||||
paletteService.deletePaletteById('palette-id-1');
|
||||
|
||||
// verify
|
||||
var palettes = paletteService.getPalettes();
|
||||
expect(palettes.length).toBe(2);
|
||||
verifyPaletteIsStored('palette-id-0');
|
||||
verifyPaletteIsNotStored('palette-id-1');
|
||||
verifyPaletteIsStored('palette-id-2');
|
||||
});
|
||||
});
|
||||
27
test/js/utils/UuidTest.js
Normal file
27
test/js/utils/UuidTest.js
Normal file
@@ -0,0 +1,27 @@
|
||||
describe("UUID Generator", function() {
|
||||
|
||||
beforeEach(function() {});
|
||||
afterEach(function() {});
|
||||
|
||||
it("returns valid uuids", function() {
|
||||
// when
|
||||
|
||||
// then
|
||||
var uuid1 = pskl.utils.Uuid.generate();
|
||||
var uuid2 = pskl.utils.Uuid.generate();
|
||||
|
||||
// verify
|
||||
expect(typeof uuid1).toBe("string");
|
||||
expect(uuid1.length).toBe(36);
|
||||
var splits = uuid1.split('-');
|
||||
expect(splits.length).toBe(5);
|
||||
|
||||
expect(splits[0].length).toBe(8);
|
||||
expect(splits[1].length).toBe(4);
|
||||
expect(splits[2].length).toBe(4);
|
||||
expect(splits[3].length).toBe(4);
|
||||
expect(splits[4].length).toBe(12);
|
||||
|
||||
expect(uuid1).not.toBe(uuid2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user