kaguranana-birthday-project/node_modules/granim/test/coreSpec.js
2021-12-12 18:49:32 -08:00

105 lines
3.0 KiB
JavaScript

/* eslint-disable */
describe('Prelim Checks:', function() {
it('Granim is defined', function() {
expect(Granim).toBeDefined();
});
it('Granim is a function', function() {
expect(Granim).toEqual(jasmine.any(Function));
});
});
var validOptions = {
element: document.createElement('canvas'),
name: 'granim',
opacity: [1, 1],
states: {
"default-state": {
gradients: [
['#834D9B', '#D04ED6'],
['#1CD8D2', '#93EDC7']
]
}
}
};
describe('Granim Core:', function() {
beforeEach(function() {
unsetCanvas();
spyOn(console, 'error');
});
describe('Invalid options:', function() {
var func = function() { return new Granim({ element: '#granim-canvas' }) };
it('throws error on invalid element id ', function() {
expect(func).toThrowError('`#granim-canvas` could not be found in the DOM');
});
it('throws an error when passed in anything other than a HTMLCanvasElement as an element', function() {
var invalidOptions = Object.assign(
Object.assign({}, validOptions),
{ element: document.createElement('div') }
);
var func = function() { return new Granim(invalidOptions) };
expect(func).toThrowError('The element you used is neither a String, nor a HTMLCanvasElement');
});
it('throws an error on invalid direction', function() {
var invalidOptions = Object.assign(
Object.assign({}, validOptions),
{ direction: 'wrongDirectiion' }
);
var func = function() { return new Granim(invalidOptions) };
expect(func).toThrowError(errorMessage('direction'));
});
it('throws an error when the color type of the gradient is not valid', function() {
var invalidOptions = Object.assign(
Object.assign({}, validOptions),
{
states: {
'default-state': {
gradients: [
['hsla(255, 12, 12%, .75)', 'rgb(kf)'],
['#az', 'rgbaw(12,36,58)']
]
}
}
}
);
var func = function() { return new Granim(invalidOptions) };
expect(func).toThrowError(errorMessage('colorType'));
});
it('throws an error when the option direction has the value \'custom\' but not the customDirection object when a new Granim instance is created', function() {
var invalidOptions = Object.assign(
Object.assign({}, validOptions),
{ direction: 'custom' }
);
var func = function() { return new Granim(invalidOptions) };
expect(func).toThrowError(errorMessage('customDirection'));
});
it('throws an error when the color value of a gradient is an object without the \'color\' key', function() {
var invalidOptions = Object.assign(
Object.assign({}, validOptions),
{
states: {
"default-state": {
gradients: [[{ pos: .5 }, { color: '#fff', pos: .6 }], ['#1CD8D2', '#93EDC7']]
}
}
}
);
var func = function() { return new Granim(invalidOptions) };
expect(func).toThrowError(errorMessage('gradient.color'));
});
});
it('Can use a HTMLCanvasElement as an element', function() {
new Granim(validOptions);
});
});