Merge branch 'master' into releases

This commit is contained in:
RedocBot 2016-05-20 20:13:00 +00:00 committed by travis@localhost
commit 15583a9dab
18 changed files with 203 additions and 170 deletions

32
build/prepare_deploy.js Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env node
'use strict';
require('shelljs/global');
var paths = require('./paths');
var path = require('path');
// copy old releases
mkdir('-p', '.ghpages-tmp');
cd('.ghpages-tmp');
// reset local changes before checkout
exec('git reset --hard');
exec('git fetch origin gh-pages:gh-pages');
exec('git checkout gh-pages');
cp('-R', '../releases/*', '.');
exec('git checkout @{-1}');
cd('..');
// build
exec('npm run build-dist');
cd('demo');
mkdir('-p', 'dist');
cp('-R', '../dist/*', './dist/');
mkdir('-p', 'releases');
cp('-R', '../.ghpages-tmp/*', './releases/');
cd('..');
var version = 'v' + require(path.join(__dirname, '../package.json')).version + '/';
var versionDir = path.join(paths.releases, version);
mkdir('-p', versionDir)
cp(paths.redocBuilt + '.min.js', versionDir);
cp(paths.redocBuilt + '.min.js', path.join(paths.releases, 'latest/'));

View File

@ -1,21 +0,0 @@
#!/bin/bash
set -e
set -x
# copy old releases
mkdir -p .ghpages-tmp && cd .ghpages-tmp
# reset local changes before checkout
git reset --hard
git fetch origin gh-pages:gh-pages
git checkout gh-pages
cp -R ../releases/* .
git checkout @{-1}
cd -
# build
npm run build-dist
cd demo
cp -R ../dist/* ./dist/
mkdir -p releases
cp -R ../.ghpages-tmp/* ./releases/
cd -
gulp copy-version

13
build/run_tests.js Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env node
'use strict';
require('shelljs/global');
set('-e');
if (process.env.JOB === 'e2e-guru') {
exec('npm run e2e');
} else {
exec('npm run unit');
console.log('Starting Basic E2E');
exec('npm run e2e');
}

View File

@ -1,8 +0,0 @@
#!/bin/bash
if [ "$JOB" = "e2e-guru" ]; then
npm run e2e
else
npm run unit
echo "Starting Basic E2E"
npm run e2e
fi

View File

@ -12,6 +12,7 @@ var sass = require('gulp-sass');
var replace = require('gulp-replace');
var rename = require('gulp-rename');
var argv = require('yargs').argv;
var gulpIf = require('gulp-if');
gulp.task('build', function (callback) {
if (argv.skipRebuild) {
@ -23,10 +24,18 @@ gulp.task('build', function (callback) {
'concatPrism',
'bundle',
'concatDeps',
'copyDebug',
callback
);
});
gulp.task('copyDebug', () => {
if (!argv.prod) {
// copy for be accessible from demo for debug
cp(paths.redocBuilt + '.js', paths.redocBuilt + '.min.js');
}
});
gulp.task('rebuild', function(done) {
return runSequence(
'bundle',
@ -43,16 +52,16 @@ gulp.task('inlineTemplates', ['sass'], function() {
});
var JS_DEPS = argv.prod ? [
'lib/utils/browser-update.js',
'node_modules/zone.js/dist/zone.min.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/babel-polyfill/dist/polyfill.min.js'
]: [
'lib/utils/browser-update.js',
'node_modules/zone.js/dist/zone.js',
'node_modules/zone.js/dist/long-stack-trace-zone.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/babel-polyfill/dist/polyfill.js'
] : [
'lib/utils/browser-update.js',
'node_modules/zone.js/dist/zone.min.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/babel-polyfill/dist/polyfill.min.js'
];
var outputFileName = paths.redocBuilt + (argv.prod ? '.min.js' : '.js');
@ -66,13 +75,13 @@ gulp.task('sass', function () {
// concatenate angular2 deps
gulp.task('concatDeps', function() {
return gulp.src(JS_DEPS.concat([outputFileName]))
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(gulpIf(!argv.prod, sourcemaps.init({loadMaps: true})))
.pipe(concat(outputFileName))
.pipe(sourcemaps.write('.'))
.pipe(gulpIf(!argv.prod, sourcemaps.write('.')))
.pipe(gulp.dest('.'))
});
gulp.task('bundle', ['inlineTemplates'], function bundle(cb) {
gulp.task('bundle', ['injectVersionFile', 'inlineTemplates'], function bundle(done) {
fs.existsSync('dist') || fs.mkdirSync('dist');
var builder = new Builder('./', 'system.config.js');
@ -81,13 +90,11 @@ gulp.task('bundle', ['inlineTemplates'], function bundle(cb) {
outputFileName,
{ format:'umd', sourceMaps: !argv.prod, lowResSourceMaps: true, minify: argv.prod }
)
.then(function() {
.then(() => {
// wait some time to allow flush
setTimeout(() => cb(), 500);
setTimeout(() => done(), 500);
})
.catch(function(err) {
cb(new Error(err));
});
.catch(err => done(err));
});
gulp.task('concatPrism', function() {
@ -121,3 +128,9 @@ gulp.task('concatPrism', function() {
.pipe(concat(path.join(paths.tmp, 'prismjs-bundle.js')))
.pipe(gulp.dest('.'))
});
// needs inlineTemplates run before to create .tmp/lib folder
gulp.task('injectVersionFile', ['inlineTemplates'], function() {
var version = require('../../package.json').version;
fs.writeFileSync(path.join(paths.tmp, 'lib/version.json'), JSON.stringify(version));
})

View File

@ -5,7 +5,7 @@ var Server = require('karma').Server;
/**
* Run test once and exit
*/
gulp.task('test', ['concatPrism', 'inlineTemplates'], function (done) {
gulp.task('test', ['concatPrism', 'inlineTemplates', 'injectVersionFile'], function (done) {
new Server({
configFile: __dirname + '/../../karma.conf.js',
singleRun: true

View File

@ -18,8 +18,7 @@
<redoc scroll-y-offset="body > nav" spec-url='http://rebilly.github.io/SwaggerTemplateRepo/swagger.yaml'></redoc>
<!-- ReDoc built file with all dependencies included -->
<script src="main.js"> </script>
<script src="dist/redoc.js"> </script>
<script src="dist/redoc.min.js"> </script>
</body>
</html>

View File

@ -1 +1,2 @@
require('shelljs/global');
require('require-dir')('build/tasks');

View File

@ -57,13 +57,15 @@ module.exports = function (config) {
jspm: {
config: 'system.config.js',
loadFiles: ['tests/setup.js', 'tests/helpers.js', 'tests/unit/*.spec.js', 'lib/**/*.js'],
serveFiles: ['tests/schemas/**/*.json','tests/schemas/**/*.yml', 'lib/**/*.html', '.tmp/*js', '.tmp/lib/**/*.css'],
serveFiles: ['tests/schemas/**/*.json','tests/schemas/**/*.yml', 'lib/**/*.html',
'.tmp/lib/**/*.json', '.tmp/*js', '.tmp/lib/**/*.css'],
nocache: true
},
proxies: {
'/tests/': '/base/tests/',
'/lib/components/Redoc/redoc-loading-styles.css': '/base/.tmp/lib/components/Redoc/redoc-loading-styles.css',
'/lib/components/Redoc/redoc-initial-styles.css': '/base/.tmp/lib/components/Redoc/redoc-initial-styles.css',
'/lib/version.json': '/base/.tmp/lib/version.json',
'/lib/': '/base/lib/',
'/jspm_packages/': '/base/jspm_packages/',
'/node_modules/': '/base/node_modules/',

View File

@ -35,20 +35,24 @@ export class JsonSchemaLazy {
return schema && schema.$ref || this.pointer;
}
load() {
if (this.optionsService.options.disableLazySchemas) return;
if (this.loaded) return;
if (this.pointer) {
this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
_loadAfterSelf() {
return this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
this.initComponent(compRef);
// trigger change detection
if (compRef.changeDetectorRef) {
compRef.changeDetectorRef.detectChanges();
} else {
compRef.hostView.changeDetectorRef.detectChanges();
}
return compRef;
});
}
load() {
if (this.optionsService.options.disableLazySchemas) return;
if (this.loaded) return;
if (this.pointer) {
this._loadAfterSelf();
}
this.loaded = true;
}
@ -63,29 +67,13 @@ export class JsonSchemaLazy {
// skip caching view with tabs inside (discriminator) as it needs attached controller
// FIXME: get rid of dependency on selector
if ($element.querySelector('.discriminator-wrap')) {
this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
this.initComponent(compRef);
if (compRef.changeDetectorRef) {
compRef.changeDetectorRef.detectChanges();
} else {
compRef.hostView.changeDetectorRef.detectChanges();
}
});
return;
}
insertAfter($element.cloneNode(true), this.elementRef.nativeElement);
} );
});
} else {
cache[this.pointer] = this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
this.initComponent(compRef);
if (compRef.changeDetectorRef) {
compRef.changeDetectorRef.detectChanges();
} else {
compRef.hostView.changeDetectorRef.detectChanges();
}
return compRef;
});
cache[this.pointer] = this._loadAfterSelf();
}
}

View File

@ -48,3 +48,20 @@ redoc.loading:after {
redoc.loading-remove:before, redoc.loading-remove:after {
opacity: 0;
}
.redoc-error {
padding: 20px;
text-align: center;
color: #cc0000;
> h2 {
color: #cc0000;
font-size: 40px;
}
}
.redoc-error-details {
max-width: 750px;
margin: 0 auto;
font-size: 18px;
}

View File

@ -5,6 +5,8 @@ import { bootstrap } from '@angular/platform-browser-dynamic';
import { BrowserDomAdapter } from '@angular/platform-browser/src/browser/browser_adapter';
import { RedocComponent, BaseComponent } from '../base';
import detectScollParent from 'scrollparent';
import { ApiInfo } from '../ApiInfo/api-info';
import { ApiLogo } from '../ApiLogo/api-logo';
import { MethodsList } from '../MethodsList/methods-list';
@ -13,9 +15,10 @@ import { SideMenu } from '../SideMenu/side-menu';
import { StickySidebar } from '../../shared/components/index';
import SchemaManager from '../../utils/SchemaManager';
import { OptionsService, RedocEventsService } from '../../services/index';
import redocVersion from '../../version.json!json';
import detectScollParent from 'scrollparent';
import './redoc-loading-styles.css!css';
import './redoc-initial-styles.css!css';
var dom = new BrowserDomAdapter();
var _modeLocked = false;
@ -86,17 +89,15 @@ export class Redoc extends BaseComponent {
}
return bootstrap(Redoc, providers);
})
.then(
(appRef) => {
.then(appRef => {
Redoc.hideLoadingAnimation();
Redoc.appRef = appRef;
console.log('ReDoc bootstrapped!');
},
error => {
console.log(error);
throw error;
}
);
}, err => {
console.log(err);
Redoc.hideLoadingAnimation();
Redoc.displayError(err);
});
}
static autoInit() {
@ -109,6 +110,21 @@ export class Redoc extends BaseComponent {
}
}
static displayError(err) {
console.log(err);
let redocEl = dom.query('redoc');
let heading = 'Oops... ReDoc failed to render this spec';
let details = err.message;
let erroHtml = `<div class="redoc-error">
<h1>${heading}</h1>
<div class='redoc-error-details'>${details}</div>`;
redocEl.innerHTML = erroHtml;
}
static get version() {
return redocVersion;
}
static destroy() {
let el = dom.query('redoc');
let elClone;

View File

@ -72,12 +72,15 @@ describe('Redoc components', () => {
res.should.be.instanceof(Promise);
});
it('should reject promise for not specifed url', (done) => {
it('should hide loading animation and display message in case of error', async(() => {
spyOn(Redoc, 'hideLoadingAnimation').and.callThrough();
spyOn(Redoc, 'displayError').and.callThrough();
let res = Redoc.init();
res.then(() => { done.fail('Should not been called'); }, () => {
done();
});
return res.then(() => {
expect(Redoc.hideLoadingAnimation).toHaveBeenCalled();
expect(Redoc.displayError).toHaveBeenCalled();
});
}));
//skip because of PhantomJS crashes on this testcase
xit('should init redoc', (done) => {

View File

@ -86,9 +86,6 @@ export function RedocComponent(options) {
pipes: pipes
});
console.log(options.selector, options.detect ?
(options.onPushOnly ? 'OnPush' : 'Default') : 'Detached');
return componentDecorator(target) || target;
};
}

View File

@ -1,5 +1,5 @@
'use strict';
import SwaggerParser from 'swagger-parser';
import JsonSchemaRefParser from 'json-schema-ref-parser';
import JsonPointer from './JsonPointer';
import {methods as swaggerMethods} from './swagger-defs';
@ -22,7 +22,7 @@ export default class SchemaManager {
let promise = new Promise((resolve, reject) => {
this._schema = {};
SwaggerParser.bundle(url, {http: {withCredentials: false}})
JsonSchemaRefParser.bundle(url, {http: {withCredentials: false}})
.then(
(schema) => {
this._schema = schema;

View File

@ -1,21 +1,21 @@
{
"name": "redoc",
"description": "Swagger-generated API Reference Documentation",
"version": "0.11.1",
"version": "0.12.0",
"repository": {
"type": "git",
"url": "git://github.com/Rebilly/ReDoc"
},
"main": "dist/redoc.min.js",
"scripts": {
"test": "gulp lint && ./build/run_tests.sh",
"test": "gulp lint && node ./build/run_tests.js",
"jspm-install": "jspm install",
"start": "gulp serve",
"build-dist": "gulp build --prod",
"branch-release": "git reset --hard && branch-release",
"unit": "gulp test",
"e2e": "gulp e2e --prod",
"deploy": "build/prepare_deploy.sh && deploy-to-gh-pages demo"
"deploy": "node ./build/prepare_deploy.js && deploy-to-gh-pages demo"
},
"keywords": [
"OpenAPI",
@ -44,12 +44,12 @@
"json-formatter-js": "npm:json-formatter-js@^0.2.0",
"json-pointer": "npm:json-pointer@^0.3.0",
"json-schema-instantiator": "npm:json-schema-instantiator@^0.3.0",
"json-schema-ref-parser": "npm:json-schema-ref-parser@^3.1.2",
"marked": "npm:marked@^0.3.5",
"prismjs": "npm:prismjs@^1.3.0",
"rxjs": "npm:rxjs@5.0.0-beta.6",
"scrollparent": "npm:scrollparent@^0.1.0",
"stream-http": "npm:stream-http@^2.3.0",
"swagger-parser": "npm:swagger-parser@4.0.0-beta.2",
"zone.js": "npm:zone.js@0.6.12"
},
"devDependencies": {
@ -63,11 +63,6 @@
"overrides": {
"github:Robdel12/DropKick@2.1.7": {
"format": "global"
},
"npm:json-schema-ref-parser@3.1.2": {
"map": {
"http": "npm:stream-http@2.3.0"
}
}
}
},
@ -81,6 +76,7 @@
"gulp": "^3.9.1",
"gulp-concat": "^2.6.0",
"gulp-eslint": "^1.1.1",
"gulp-if": "^2.0.1",
"gulp-inline-ng2-template": "^1.1.2",
"gulp-protractor": "^2.1.0",
"gulp-rename": "^1.2.2",
@ -110,6 +106,7 @@
"reflect-metadata": "^0.1.2",
"require-dir": "^0.3.0",
"run-sequence": "^1.1.5",
"shelljs": "^0.7.0",
"should": "^8.0.2",
"sinon": "^1.17.2",
"systemjs-builder": "^0.15.16",

View File

@ -54,16 +54,16 @@ System.config({
"json-formatter-js": "npm:json-formatter-js@0.2.0",
"json-pointer": "npm:json-pointer@0.3.0",
"json-schema-instantiator": "npm:json-schema-instantiator@0.3.0",
"json-schema-ref-parser": "npm:json-schema-ref-parser@3.1.2",
"marked": "npm:marked@0.3.5",
"prismjs": "npm:prismjs@1.3.0",
"rxjs": "npm:rxjs@5.0.0-beta.6",
"scrollparent": "npm:scrollparent@0.1.0",
"stream-http": "npm:stream-http@2.3.0",
"swagger-parser": "npm:swagger-parser@4.0.0-beta.2",
"systemjs/plugin-json": "github:systemjs/plugin-json@0.1.2",
"zone.js": "npm:zone.js@0.6.12",
"github:jspm/nodelibs-assert@0.1.0": {
"assert": "npm:assert@1.3.0"
"assert": "npm:assert@1.4.0"
},
"github:jspm/nodelibs-buffer@0.1.0": {
"buffer": "npm:buffer@3.6.0"
@ -105,7 +105,7 @@ System.config({
"path-browserify": "npm:path-browserify@0.0.0"
},
"github:jspm/nodelibs-process@0.1.2": {
"process": "npm:process@0.11.2"
"process": "npm:process@0.11.3"
},
"github:jspm/nodelibs-punycode@0.1.0": {
"punycode": "npm:punycode@1.3.2"
@ -176,13 +176,14 @@ System.config({
"sprintf-js": "npm:sprintf-js@1.0.3",
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:asn1.js@4.5.2": {
"npm:asn1.js@4.6.0": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"bn.js": "npm:bn.js@4.11.3",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"inherits": "npm:inherits@2.0.1",
"minimalistic-assert": "npm:minimalistic-assert@1.0.0",
"systemjs-json": "github:systemjs/plugin-json@0.1.2",
"vm": "github:jspm/nodelibs-vm@0.1.0"
},
"npm:asn1@0.2.3": {
@ -205,7 +206,11 @@ System.config({
"stream": "github:jspm/nodelibs-stream@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:assert@1.3.0": {
"npm:assert@1.4.0": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"buffer-shims": "npm:buffer-shims@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"util": "npm:util@0.10.3"
},
"npm:async@1.5.2": {
@ -215,10 +220,9 @@ System.config({
"crypto": "github:jspm/nodelibs-crypto@0.1.0",
"url": "github:jspm/nodelibs-url@0.1.0"
},
"npm:aws4@1.3.2": {
"npm:aws4@1.4.1": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0",
"lru-cache": "npm:lru-cache@4.0.1",
"process": "github:jspm/nodelibs-process@0.1.2",
"querystring": "github:jspm/nodelibs-querystring@0.1.0",
"url": "github:jspm/nodelibs-url@0.1.0"
@ -293,6 +297,9 @@ System.config({
"readable-stream": "npm:readable-stream@2.0.6",
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:buffer-shims@1.0.0": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0"
},
"npm:buffer-xor@1.0.3": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"systemjs-json": "github:systemjs/plugin-json@0.1.2"
@ -461,7 +468,7 @@ System.config({
"inherits": "npm:inherits@2.0.1",
"systemjs-json": "github:systemjs/plugin-json@0.1.2"
},
"npm:es6-promise@3.1.2": {
"npm:es6-promise@3.2.1": {
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:evp_bytestokey@1.0.0": {
@ -488,7 +495,7 @@ System.config({
"fs": "github:jspm/nodelibs-fs@0.1.2",
"http": "github:jspm/nodelibs-http@1.7.1",
"https": "github:jspm/nodelibs-https@0.1.0",
"mime-types": "npm:mime-types@2.1.10",
"mime-types": "npm:mime-types@2.1.11",
"path": "github:jspm/nodelibs-path@0.1.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"url": "github:jspm/nodelibs-url@0.1.0",
@ -502,7 +509,7 @@ System.config({
"is-property": "npm:is-property@1.0.2",
"systemjs-json": "github:systemjs/plugin-json@0.1.2"
},
"npm:getpass@0.1.5": {
"npm:getpass@0.1.6": {
"assert-plus": "npm:assert-plus@1.0.0",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"process": "github:jspm/nodelibs-process@0.1.2",
@ -547,7 +554,7 @@ System.config({
"crypto": "github:jspm/nodelibs-crypto@0.1.0",
"http": "github:jspm/nodelibs-http@1.7.1",
"jsprim": "npm:jsprim@1.2.2",
"sshpk": "npm:sshpk@1.8.2",
"sshpk": "npm:sshpk@1.8.3",
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:https-browserify@0.0.0": {
@ -582,7 +589,7 @@ System.config({
"crypto": "github:jspm/nodelibs-crypto@0.1.0",
"jsbn": "npm:jsbn@0.1.0"
},
"npm:js-yaml@3.6.0": {
"npm:js-yaml@3.6.1": {
"argparse": "npm:argparse@1.0.7",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"esprima": "npm:esprima@2.7.2",
@ -605,11 +612,12 @@ System.config({
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"call-me-maybe": "npm:call-me-maybe@1.0.1",
"debug": "npm:debug@2.2.0",
"es6-promise": "npm:es6-promise@3.1.2",
"es6-promise": "npm:es6-promise@3.2.1",
"events": "github:jspm/nodelibs-events@0.1.1",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"https": "github:jspm/nodelibs-https@0.1.0",
"js-yaml": "npm:js-yaml@3.6.0",
"http": "npm:stream-http@2.3.0",
"https": "npm:stream-http@2.3.0",
"js-yaml": "npm:js-yaml@3.6.1",
"ono": "npm:ono@2.2.1",
"process": "github:jspm/nodelibs-process@0.1.2",
"punycode": "github:jspm/nodelibs-punycode@0.1.0",
@ -631,36 +639,33 @@ System.config({
"util": "github:jspm/nodelibs-util@0.1.0",
"verror": "npm:verror@1.3.6"
},
"npm:lodash._stringtopath@4.7.1": {
"npm:lodash._basetostring@4.12.0": {
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:lodash.get@4.2.1": {
"lodash._stringtopath": "npm:lodash._stringtopath@4.7.1"
"npm:lodash._stringtopath@4.8.0": {
"lodash._basetostring": "npm:lodash._basetostring@4.12.0",
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:lru-cache@4.0.1": {
"pseudomap": "npm:pseudomap@1.0.2",
"util": "github:jspm/nodelibs-util@0.1.0",
"yallist": "npm:yallist@2.0.0"
"npm:lodash.get@4.3.0": {
"lodash._stringtopath": "npm:lodash._stringtopath@4.8.0"
},
"npm:miller-rabin@4.0.0": {
"bn.js": "npm:bn.js@4.11.3",
"brorand": "npm:brorand@1.0.5"
},
"npm:mime-db@1.22.0": {
"npm:mime-db@1.23.0": {
"systemjs-json": "github:systemjs/plugin-json@0.1.2"
},
"npm:mime-types@2.1.10": {
"mime-db": "npm:mime-db@1.22.0",
"npm:mime-types@2.1.11": {
"mime-db": "npm:mime-db@1.23.0",
"path": "github:jspm/nodelibs-path@0.1.0"
},
"npm:node-uuid@1.4.7": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0"
},
"npm:oauth-sign@0.8.1": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"npm:oauth-sign@0.8.2": {
"crypto": "github:jspm/nodelibs-crypto@0.1.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"querystring": "github:jspm/nodelibs-querystring@0.1.0"
},
"npm:ono@2.2.1": {
@ -675,7 +680,7 @@ System.config({
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:parse-asn1@5.0.0": {
"asn1.js": "npm:asn1.js@4.5.2",
"asn1.js": "npm:asn1.js@4.6.0",
"browserify-aes": "npm:browserify-aes@1.0.6",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"create-hash": "npm:create-hash@1.1.2",
@ -707,12 +712,12 @@ System.config({
"process": "github:jspm/nodelibs-process@0.1.2",
"systemjs-json": "github:systemjs/plugin-json@0.1.2"
},
"npm:process@0.11.2": {
"assert": "github:jspm/nodelibs-assert@0.1.0"
},
"npm:pseudomap@1.0.2": {
"npm:process-nextick-args@1.0.7": {
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:process@0.11.3": {
"assert": "github:jspm/nodelibs-assert@0.1.0"
},
"npm:public-encrypt@4.0.0": {
"bn.js": "npm:bn.js@4.11.3",
"browserify-rsa": "npm:browserify-rsa@4.0.1",
@ -748,7 +753,7 @@ System.config({
"inherits": "npm:inherits@2.0.1",
"isarray": "npm:isarray@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"process-nextick-args": "npm:process-nextick-args@1.0.6",
"process-nextick-args": "npm:process-nextick-args@1.0.7",
"string_decoder": "npm:string_decoder@0.10.31",
"util-deprecate": "npm:util-deprecate@1.0.2"
},
@ -765,7 +770,7 @@ System.config({
},
"npm:request@2.72.0": {
"aws-sign2": "npm:aws-sign2@0.6.0",
"aws4": "npm:aws4@1.3.2",
"aws4": "npm:aws4@1.4.1",
"bl": "npm:bl@1.1.2",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"caseless": "npm:caseless@0.11.0",
@ -783,16 +788,16 @@ System.config({
"is-typedarray": "npm:is-typedarray@1.0.0",
"isstream": "npm:isstream@0.1.2",
"json-stringify-safe": "npm:json-stringify-safe@5.0.1",
"mime-types": "npm:mime-types@2.1.10",
"mime-types": "npm:mime-types@2.1.11",
"node-uuid": "npm:node-uuid@1.4.7",
"oauth-sign": "npm:oauth-sign@0.8.1",
"oauth-sign": "npm:oauth-sign@0.8.2",
"process": "github:jspm/nodelibs-process@0.1.2",
"qs": "npm:qs@6.1.0",
"querystring": "github:jspm/nodelibs-querystring@0.1.0",
"stream": "github:jspm/nodelibs-stream@0.1.0",
"stringstream": "npm:stringstream@0.0.5",
"tough-cookie": "npm:tough-cookie@2.2.2",
"tunnel-agent": "npm:tunnel-agent@0.4.2",
"tunnel-agent": "npm:tunnel-agent@0.4.3",
"url": "github:jspm/nodelibs-url@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0",
"zlib": "github:jspm/nodelibs-zlib@0.1.0"
@ -822,14 +827,14 @@ System.config({
"amdefine": "npm:amdefine@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:sshpk@1.8.2": {
"npm:sshpk@1.8.3": {
"asn1": "npm:asn1@0.2.3",
"assert-plus": "npm:assert-plus@1.0.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0",
"dashdash": "npm:dashdash@1.13.1",
"ecc-jsbn": "npm:ecc-jsbn@0.1.1",
"getpass": "npm:getpass@0.1.5",
"getpass": "npm:getpass@0.1.6",
"jodid25519": "npm:jodid25519@1.0.2",
"jsbn": "npm:jsbn@0.1.0",
"stream": "github:jspm/nodelibs-stream@0.1.0",
@ -871,31 +876,8 @@ System.config({
"npm:supports-color@2.0.0": {
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:swagger-parser@4.0.0-beta.2": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"call-me-maybe": "npm:call-me-maybe@1.0.1",
"debug": "npm:debug@2.2.0",
"es6-promise": "npm:es6-promise@3.1.2",
"events": "github:jspm/nodelibs-events@0.1.1",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"http": "github:jspm/nodelibs-http@1.7.1",
"https": "github:jspm/nodelibs-https@0.1.0",
"json-schema-ref-parser": "npm:json-schema-ref-parser@3.1.2",
"ono": "npm:ono@2.2.1",
"process": "github:jspm/nodelibs-process@0.1.2",
"punycode": "github:jspm/nodelibs-punycode@0.1.0",
"querystring": "github:jspm/nodelibs-querystring@0.1.0",
"stream": "github:jspm/nodelibs-stream@0.1.0",
"string_decoder": "github:jspm/nodelibs-string_decoder@0.1.0",
"swagger-methods": "npm:swagger-methods@1.0.0",
"swagger-schema-official": "npm:swagger-schema-official@2.0.0-bab6bed",
"systemjs-json": "github:systemjs/plugin-json@0.1.2",
"url": "github:jspm/nodelibs-url@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0",
"z-schema": "npm:z-schema@3.17.0"
},
"npm:timers-browserify@1.4.2": {
"process": "npm:process@0.11.2"
"process": "npm:process@0.11.3"
},
"npm:to-arraybuffer@1.0.1": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
@ -908,7 +890,7 @@ System.config({
"url": "github:jspm/nodelibs-url@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:tunnel-agent@0.4.2": {
"npm:tunnel-agent@0.4.3": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"events": "github:jspm/nodelibs-events@0.1.1",
@ -946,7 +928,7 @@ System.config({
},
"npm:z-schema@3.17.0": {
"commander": "npm:commander@2.9.0",
"lodash.get": "npm:lodash.get@4.2.1",
"lodash.get": "npm:lodash.get@4.3.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"request": "npm:request@2.72.0",
"systemjs-json": "github:systemjs/plugin-json@0.1.2",

View File

@ -72,6 +72,8 @@ describe('Language tabs sync', () => {
var $item = $$('[operation-id="addPet"] tabs > ul > li').last();
// check if correct item
expect($item.getText()).toContain('PHP');
var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable($item), 2000);
$item.click().then(() => {
expect($('[operation-id="updatePet"] li.active').getText()).toContain('PHP');
});