superdesk/superdesk-client-core

View on GitHub
scripts/core/api/allowed_spec.ts

Summary

Maintainability
A
0 mins
Test Coverage

describe('superdesk.core.api.allowed', () => {
    beforeEach(window.module('superdesk.core.api'));

    beforeEach(inject((api, $q) => {
        spyOn(api, 'get').and.returnValue($q.when({
            _items: [
                {_id: 'resource.value', items: ['foo']},
                {_id: 'another.value', items: ['bar']},
            ],
        }));
    }));

    it('can get allowed values for resource/key pair', inject((allowed, $rootScope) => {
        var values;

        allowed.get('another', 'value').then((_values) => {
            values = _values;
        });

        $rootScope.$digest();
        expect(values).toEqual(['bar']);
    }));

    it('can filter object keys using allowed values', inject((allowed, $rootScope) => {
        var all = {
            foo: 1,
            bar: 2,
            baz: 3,
            foox: 4,
        };

        var filtered;

        allowed.filterKeys(all, 'resource', 'value').then((_filtered) => {
            filtered = _filtered;
        });

        $rootScope.$digest();
        expect(filtered).toEqual({foo: 1, foox: 4});
    }));
});