test/Descriptors.spec.js
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import sinonChai from 'sinon-chai';
let expect = chai.expect;
chai.use(chaiAsPromised);
chai.use(sinonChai);
import { descriptors } from './resources/descriptors.js';
import { buildURL } from '../src/utils/utils';
import { runtimeConfiguration } from './resources/runtimeConfiguration';
import { runtimeFactory } from './resources/runtimeFactory';
import Descriptors from '../src/runtime/Descriptors';
describe('Should get configuration and parse to Descriptors', () => {
// Testing Registry
let domain = 'sp.domain';
let runtimeURL = 'hyperty-runtime://' + domain + '/123';
let descriptorsInstance;
runtimeConfiguration.domain = domain;
before(()=> {
let catalogue = runtimeFactory.createRuntimeCatalogue();
descriptorsInstance = new Descriptors(runtimeURL, catalogue, runtimeConfiguration);
sinon.stub(descriptorsInstance.catalogue, 'getStubDescriptor', (url) => {
return new Promise((resolve) => {
resolve(descriptors.ProtoStubs.default);
});
});
sinon.stub(descriptorsInstance.catalogue, 'getIdpProxyDescriptor', (url) => {
return new Promise((resolve, reject) => {
if (url.includes('catalogue.google.com')) {
reject();
} else {
resolve(descriptors.IdpProxies['google.com']);
}
});
});
sinon.stub(descriptorsInstance.catalogue, 'getHypertyDescriptor', (url) => {
return new Promise((resolve) => {
resolve(descriptors.Hyperties.HelloHyperty);
});
});
});
after(() => {
descriptorsInstance.catalogue.getIdpProxyDescriptor.restore();
descriptorsInstance.catalogue.getHypertyDescriptor.restore();
descriptorsInstance.catalogue.getStubDescriptor.restore();
});
it('constructor should receive 3 arguments', () => {
expect(descriptorsInstance)
.to.have.property('runtimeURL')
.that.is.an('string')
.to.not.be.empty;
expect(descriptorsInstance)
.to.have.property('catalogue');
expect(descriptorsInstance)
.to.have.property('runtimeConfiguration')
.that.is.a('object')
.and.to.contain.all.keys(runtimeConfiguration);
});
it('should get hyperty', (done) => {
let hypertyDescriptorURL = 'hyperty-catalogue://catalogue.sp.domain/.well-known/hyperty/Connector';
expect(descriptorsInstance.getHypertyDescriptor(hypertyDescriptorURL))
.to.be.fulfilled
.and.notify(done);
});
it('should get protocolstub', (done) => {
let stubDescriptorURL = 'sp.domain';
expect(descriptorsInstance.getStubDescriptor(stubDescriptorURL))
.to.be.fulfilled
.and.notify(done);
});
it('should get protocolstub', (done) => {
let idpProxyURL = 'google.com';
expect(descriptorsInstance.getIdpProxyDescriptor(idpProxyURL))
.to.be.fulfilled
.and.notify(done);
});
});