UNPKG

xdl

Version:

The Expo Development Library

141 lines (104 loc) 4.33 kB
'use strict'; 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