Conflicts: dist/index.html dist/swagger-ui.js dist/swagger-ui.min.js src/main/coffeescript/view/MainView.coffee src/main/coffeescript/view/OperationView.coffee src/main/coffeescript/view/ParameterView.coffee src/main/coffeescript/view/ResourceView.coffee src/main/coffeescript/view/SignatureView.coffee src/main/html/index.html
132 lines
3.7 KiB
JavaScript
132 lines
3.7 KiB
JavaScript
'use strict';
|
|
|
|
var expect = require('chai').expect;
|
|
var webdriver = require('selenium-webdriver');
|
|
var driver = require('./driver');
|
|
var servers = require('./servers');
|
|
|
|
|
|
var elements = [
|
|
'swagger-ui-container',
|
|
'resources_container',
|
|
'api_info',
|
|
'resource_pet',
|
|
'resource_store',
|
|
'resource_user',
|
|
'header'
|
|
];
|
|
|
|
describe('swagger 2.0 spec tests', function () {
|
|
this.timeout(10 * 1000);
|
|
|
|
before(function (done) {
|
|
this.timeout(25 * 1000);
|
|
servers.start('/v2/petstore.json', done);
|
|
});
|
|
|
|
afterEach(function(){
|
|
it('should not have any console errors', function (done) {
|
|
driver.manage().logs().get('browser').then(function(browserLogs) {
|
|
var errors = [];
|
|
browserLogs.forEach(function(log){
|
|
// 900 and above is "error" level. Console should not have any errors
|
|
if (log.level.value > 900) {
|
|
console.log('browser error message:', log.message); errors.push(log);
|
|
}
|
|
});
|
|
expect(errors).to.be.empty;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
it('should have "Swagger UI" in title', function (done) {
|
|
driver.sleep(200);
|
|
driver.getTitle().then(function(title) {
|
|
expect(title).to.contain('Swagger UI');
|
|
done();
|
|
});
|
|
});
|
|
|
|
elements.forEach(function (id) {
|
|
it('should render element: ' + id, function (done) {
|
|
var locator = webdriver.By.id(id);
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
it('should find the contact name element', function(done){
|
|
var locator = webdriver.By.css('.info_name');
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should find the contact email element', function(done){
|
|
var locator = webdriver.By.css('.info_email');
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should find the contact url element', function(done){
|
|
var locator = webdriver.By.css('.info_url');
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should find the pet link', function(done){
|
|
var locator = webdriver.By.xpath('//*[@data-id="pet"]');
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should find the pet resource description', function(done){
|
|
var locator = webdriver.By.xpath('//div[contains(., "Everything about your Pets")]');
|
|
driver.findElements(locator).then(function (elements) {
|
|
expect(elements.length).to.not.equal(0);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should find the user link', function(done){
|
|
var locator = webdriver.By.xpath('//*[@data-id="user"]');
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should find the store link', function(done){
|
|
var locator = webdriver.By.xpath('//*[@data-id="store"]');
|
|
driver.isElementPresent(locator).then(function (isPresent) {
|
|
expect(isPresent).to.be.true;
|
|
done();
|
|
});
|
|
});
|
|
|
|
["root.id","root.username","root.firstName","root.lastName", "root.email", "root.password", "root.phone", "root.userStatus"]
|
|
.forEach(function (id) {
|
|
it('should find a jsoneditor for user post with field: ' + id, function (done) {
|
|
var locator = webdriver.By.xpath("//*[@id='user_createUser']//*[@data-schemapath='"+id+"']");
|
|
driver
|
|
.wait(webdriver.until.elementLocated(locator),2000)
|
|
.then(function(el) { done(); });
|
|
});
|
|
});
|
|
|
|
// TODO JSonEditor Tests for POST/PUT
|
|
|
|
after(function() {
|
|
servers.close();
|
|
});
|
|
}); |