xdl
Version:
The Expo Development Library
141 lines (104 loc) • 4.33 kB
JavaScript
var _fsExtra;
function _load_fsExtra() {
return _fsExtra = _interopRequireDefault(require('fs-extra'));
}
var _path = _interopRequireDefault(require('path'));
var _hashids;
function _load_hashids() {
return _hashids = _interopRequireDefault(require('hashids'));
}
var _uuid;
function _load_uuid() {
return _uuid = _interopRequireDefault(require('uuid'));
}
var _os = _interopRequireDefault(require('os'));
var _util;
function _load_util() {
return _util = _interopRequireDefault(require('util.promisify'));
}
var _ApiV;
function _load_ApiV() {
return _ApiV = _interopRequireDefault(require('../ApiV2'));
}
var _Project;
function _load_Project() {
return _Project = require('../Project');
}
var _User;
function _load_User() {
return _User = require('../User');
}
var _UserSettings;
function _load_UserSettings() {
return _UserSettings = _interopRequireDefault(require('../UserSettings'));
}
var _Exp;
function _load_Exp() {
return _Exp = require('../Exp');
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
jasmine.DEFAULT_TIMEOUT_INTERVAL = 300000;
const XDL_TEST_CLIENT_ID = 'o0YygTgKhOTdoWj10Yl9nY2P0SMTw38Y';
const _makeShortId = (salt, minLength = 10) => {
const hashIds = new (_hashids || _load_hashids()).default(salt, minLength);
return hashIds.encode(Date.now());
};
const statAsync = (0, (_util || _load_util()).default)((_fsExtra || _load_fsExtra()).default.stat);
describe('api', () => {
let userForTest;
let projectRoot;
beforeAll(_asyncToGenerator(function* () {
process.env.__UNSAFE_EXPO_HOME_DIRECTORY = _path.default.join('/', 'tmp', `.expo-${_makeShortId((_uuid || _load_uuid()).default.v1())}`);
const UserManager = _newTestUserManager();
const username = `xdl-test-${_makeShortId((_uuid || _load_uuid()).default.v1())}`;
const password = (_uuid || _load_uuid()).default.v1();
// Register a new user that we can use for this test run
const newUser = yield UserManager.registerAsync({
username,
password,
email: `adam+${username}@getexponent.com`,
givenName: 'XDL',
familyName: 'Test User'
});
userForTest = newUser;
}));
afterAll(_asyncToGenerator(function* () {
if (projectRoot) {
yield (0, (_Project || _load_Project()).stopAsync)(projectRoot);
}
const UserManager = _newTestUserManager();
if (process.env.__UNSAFE_EXPO_HOME_DIRECTORY) {
(_fsExtra || _load_fsExtra()).default.removeSync(process.env.__UNSAFE_EXPO_HOME_DIRECTORY);
}
//fs.removeSync(projectRoot);
const api = (_ApiV || _load_ApiV()).default.clientForUser(userForTest);
try {
yield api.postAsync('auth/deleteUser');
} catch (e) {
console.error(e);
}
yield UserManager.logoutAsync();
}));
it('should download the starter app template', _asyncToGenerator(function* () {
yield (0, (_Exp || _load_Exp()).clearXDLCacheAsync)();
// Get the default directory to then download the template
let dir = yield (_UserSettings || _load_UserSettings()).default.getAsync('defaultNewProjectDir', _os.default.homedir());
let { starterAppPath } = yield (0, (_Exp || _load_Exp()).downloadTemplateApp)('tabs', dir, {
name: `test-template-${new Date().valueOf()}`,
progressFunction: function () {},
retryFunction: function () {}
});
// $FlowFixMe: missing definition for expect.any
expect(starterAppPath).toEqual(expect.any(String));
let stats = yield statAsync(starterAppPath);
expect(stats.isFile());
}));
});
function _newTestUserManager() {
const UserManager = new (_User || _load_User()).UserManagerInstance();
UserManager.initialize(XDL_TEST_CLIENT_ID); // XDL Test Client
return UserManager;
}
//# sourceMappingURL=../__sourcemaps__/__integration_tests__/Api-test.js.map
;