mirror of https://github.com/Seich/Beau.git
84 lines
2.0 KiB
JavaScript
84 lines
2.0 KiB
JavaScript
const RequestCache = require('../requestCache');
|
|
|
|
describe('Request Cache', () => {
|
|
let cache;
|
|
|
|
beforeEach(() => {
|
|
cache = new RequestCache();
|
|
|
|
cache.add('$session', {
|
|
hello: 'World'
|
|
});
|
|
|
|
cache.add('$array', [
|
|
{
|
|
id: 1,
|
|
name: 'Sergio'
|
|
},
|
|
{
|
|
id: 2,
|
|
name: 'Angela'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('should add keys to the cache', () => {
|
|
expect(cache.$cache.$session.hello).toBe('World');
|
|
});
|
|
|
|
describe('get', () => {
|
|
it('should be able to find key values with a given path', () => {
|
|
expect(cache.get('$session.hello')).toBe('World');
|
|
});
|
|
|
|
it('should throw when given an invalid path', () => {
|
|
expect(() => cache.get('$session.world')).toThrow();
|
|
});
|
|
});
|
|
|
|
describe('parse', () => {
|
|
it("should transform variables in strings using it's cache", () => {
|
|
expect(cache.parse('Hello $session.hello')).toBe('Hello World');
|
|
});
|
|
|
|
it('should go transform variables in all values when given an object', () => {
|
|
let parsed = cache.parse({
|
|
hello: 'hello $session.hello',
|
|
earth: '$session.hello'
|
|
});
|
|
expect(parsed.hello).toBe('hello World');
|
|
expect(parsed.earth).toBe('World');
|
|
});
|
|
|
|
it('should return every non-string value as-is', () => {
|
|
let parsed = cache.parse({
|
|
number: 1,
|
|
nulled: null,
|
|
truthy: false,
|
|
hello: '$session.hello'
|
|
});
|
|
expect(parsed.number).toBe(1);
|
|
expect(parsed.nulled).toBeNull();
|
|
expect(parsed.truthy).toBe(false);
|
|
expect(parsed.hello).toBe('World');
|
|
});
|
|
|
|
it('should parse arrays as well', () => {
|
|
let parsed = cache.parse({ hello: '$array.0.name' });
|
|
expect(parsed.hello).toBe('Sergio');
|
|
});
|
|
|
|
it('should return an object when given an undefined value', () => {
|
|
expect(Object.keys(cache.parse(undefined)).length).toBe(0);
|
|
});
|
|
|
|
it('should parse any value other than undefined', () => {
|
|
expect(cache.parse('Hello $session.hello')).toBe('Hello World');
|
|
});
|
|
|
|
it('should return null when passed null', () => {
|
|
expect(cache.parse(null)).toBe(null);
|
|
});
|
|
});
|
|
});
|