@looker/sdk-node
Version:
Looker SDK Runtime for Node Library
78 lines • 4.2 kB
JavaScript
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
import * as fs from 'fs';
import * as process from 'node:process';
import { describe, it } from 'node:test';
import { expect } from 'expect';
import { ApiConfigMap, boolDefault, defaultTimeout } from '@looker/sdk-rtl';
import { TestConfig } from '@looker/sdk-rtl/src/testUtils';
import { NodeTransport } from './nodeTransport';
import { NodeSession } from './nodeSession';
import { ApiConfig, NodeSettings, NodeSettingsIniFile } from './nodeSettings';
var config = TestConfig();
var envPrefix = 'LOOKERSDK';
var localIni = config.localIni;
describe('NodeSession', () => {
var settings = new NodeSettingsIniFile(envPrefix, localIni, 'Looker');
var transport = new NodeTransport(settings);
describe('isAuthenticated', () => {
it('unauthenticated logout returns false', _asyncToGenerator(function* () {
var session = new NodeSession(settings, transport);
expect(session.isAuthenticated()).toEqual(false);
var actual = yield session.logout();
expect(actual).toEqual(false);
expect(session.isAuthenticated()).toEqual(false);
}));
});
describe('integration tests', () => {
it('initializes', () => {
var session = new NodeSession(settings, transport);
expect(session.settings).toEqual(settings);
expect(session.isAuthenticated()).toEqual(false);
expect(session.isSudo()).toEqual(false);
});
it('default auth logs in and out with good credentials', _asyncToGenerator(function* () {
var session = new NodeSession(settings, transport);
expect(session.isAuthenticated()).toEqual(false);
var token = yield session.login();
expect(token).toBeDefined();
expect(token.access_token).toBeDefined();
expect(session.isAuthenticated()).toEqual(true);
var result = yield session.logout();
expect(result).toEqual(true);
expect(session.isAuthenticated()).toEqual(false);
}));
});
describe('environmental configuration', () => {
it('no INI file', _asyncToGenerator(function* () {
var section = ApiConfig(fs.readFileSync(localIni, 'utf8')).Looker;
var verify_ssl = boolDefault(section.verify_ssl, false).toString();
var envPrefix = 'LOOKERSDK';
var envKey = ApiConfigMap(envPrefix);
process.env[envKey.timeout] = section.timeout || defaultTimeout.toString();
process.env[envKey.client_id] = section.client_id;
process.env[envKey.client_secret] = section.client_secret;
process.env[envKey.base_url] = section.base_url;
process.env[envKey.verify_ssl] = verify_ssl.toString();
var settings = new NodeSettings(envPrefix);
expect(settings.base_url).toEqual(section.base_url);
expect(settings.timeout.toString()).toEqual(section.timeout || defaultTimeout.toString());
expect(settings.verify_ssl.toString()).toEqual(verify_ssl);
var session = new NodeSession(settings, transport);
expect(session.isAuthenticated()).toEqual(false);
var token = yield session.login();
expect(token).toBeDefined();
expect(token.access_token).toBeDefined();
expect(session.isAuthenticated()).toEqual(true);
var result = yield session.logout();
expect(result).toEqual(true);
expect(session.isAuthenticated()).toEqual(false);
delete process.env[envKey.timeout];
delete process.env[envKey.client_id];
delete process.env[envKey.client_secret];
delete process.env[envKey.base_url];
delete process.env[envKey.verify_ssl];
}));
});
});
//# sourceMappingURL=nodeSession.apispec.js.map