egroupware/test/loginSpec.js

40 lines
1.3 KiB
JavaScript

let expect = require('chai').expect;
const { JSDOM } = require('jsdom'),
// the file I will be loading
uri = 'https://boulder.egroupware.org/egroupware/login.php',
// the options that I will be giving to jsdom
options = {
runScripts: 'dangerously', // 'outside-only' does NOT work for scripts in the loaded page!
resources: 'usable'
};
// load from an external file
describe('EGroupware login-page', function() {
it('Should load egw object', function() {
debugger
return JSDOM.fromURL(uri, options).then(function (dom) {
let window = dom.window,
document = window.document;
expect(document.querySelectorAll('form')).key(0);
expect(document.querySelectorAll('form')[0].action).to.be.a('string').and.satisfy(msg => msg.startsWith(uri));
return new Promise((resolve, reject) => {
window.onload = resolve;
}).then(function() {
console.log('Window loaded :)');
return new Promise((resolve, reject) => {
window.egw_LAB.wait(function() {
console.log('Async script-loading / egw_LAB done :)')
resolve(window.egw);
});
})
});
}).then(function(egw) {
expect(egw.webserverUrl).equal('/egroupware', 'egw.webserverURL !== "/egroupware"');
expect(egw.lang('Test12345 %1', 'success')).to.equal('Test12345 success');
egw.window.close();
})
})
})