From ed41c336a326d34ef80375785ff57838c1c7c148 Mon Sep 17 00:00:00 2001 From: Aaron Baker Date: Wed, 5 Aug 2015 12:42:47 +0100 Subject: [PATCH 1/2] Issue #1423: responses containing references to definitions were not being fully resolved when the spec was pulled in over AJAX but was working locally. OperationView.render()'s parsing of the responses was just checking if the ref _started_ with '#/definitions/', not whether it contained it, and when pulled in over AJAX the refs have the URL prepended to them --- src/main/javascript/view/OperationView.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/javascript/view/OperationView.js b/src/main/javascript/view/OperationView.js index 6891f5a1..e4be8004 100644 --- a/src/main/javascript/view/OperationView.js +++ b/src/main/javascript/view/OperationView.js @@ -139,8 +139,8 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ schemaObj = this.model.responses[code].schema; if (schemaObj && schemaObj.$ref) { schema = schemaObj.$ref; - if (schema.indexOf('#/definitions/') === 0) { - schema = schema.substring('#/definitions/'.length); + if (schema.indexOf('#/definitions/') !== -1) { + schema = schema.replace(/^.*#\/definitions\//, ''); } } this.model.responseMessages.push({ From f6d7b6a73f637e948b9ed94439da5355a5f91972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Thu, 6 Aug 2015 16:49:23 +0200 Subject: [PATCH 2/2] Fix timing issues in unit-tests --- test/e2e/servers.js | 2 +- test/e2e/v1.js | 11 ++++------- test/e2e/v2.js | 12 ++++-------- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/test/e2e/servers.js b/test/e2e/servers.js index 58cbb08e..4e4d1976 100644 --- a/test/e2e/servers.js +++ b/test/e2e/servers.js @@ -29,7 +29,7 @@ module.exports.start = function (specsLocation, done) { setTimeout(function(){ driver.get(url); done(); - }, process.env.TRAVIS ? 20000 : 3000); + }, process.env.TRAVIS ? 20000 : 5000); }; module.exports.close = function() { diff --git a/test/e2e/v1.js b/test/e2e/v1.js index 142129f2..32f1b6e8 100644 --- a/test/e2e/v1.js +++ b/test/e2e/v1.js @@ -4,6 +4,7 @@ var expect = require('chai').expect; var driver = require('./driver'); var servers = require('./servers'); var webdriver = require('selenium-webdriver'); +var until = webdriver.until; var elements = [ 'swagger-ui-container', @@ -39,12 +40,8 @@ describe('swagger 1.x spec tests', function () { }); }); - it('should have "Swagger UI" in title', function (done) { - driver.sleep(200); - driver.getTitle().then(function(title) { - expect(title).to.contain('Swagger UI'); - done(); - }); + it('should have "Swagger UI" in title', function () { + return driver.wait(until.titleIs('Swagger UI'), 1000); }); elements.forEach(function (id) { @@ -102,4 +99,4 @@ describe('swagger 1.x spec tests', function () { after(function(){ servers.close(); }); -}); \ No newline at end of file +}); diff --git a/test/e2e/v2.js b/test/e2e/v2.js index 8e508cc3..e0515b35 100644 --- a/test/e2e/v2.js +++ b/test/e2e/v2.js @@ -4,7 +4,7 @@ var expect = require('chai').expect; var webdriver = require('selenium-webdriver'); var driver = require('./driver'); var servers = require('./servers'); - +var until = webdriver.until; var elements = [ 'swagger-ui-container', @@ -40,12 +40,8 @@ describe('swagger 2.0 spec tests', function () { }); }); - it('should have "Swagger UI" in title', function (done) { - driver.sleep(200); - driver.getTitle().then(function(title) { - expect(title).to.contain('Swagger UI'); - done(); - }); + it('should have "Swagger UI" in title', function () { + return driver.wait(until.titleIs('Swagger UI'), 1000); }); elements.forEach(function (id) { @@ -117,4 +113,4 @@ describe('swagger 2.0 spec tests', function () { after(function() { servers.close(); }); -}); \ No newline at end of file +});