github.com/qubitproducts/logspray@v0.2.14/server/swagger-ui/test/e2e/v1.js (about)

     1  'use strict';
     2  
     3  var expect = require('chai').expect;
     4  var driver = require('./driver');
     5  var servers = require('./servers');
     6  var webdriver = require('selenium-webdriver');
     7  var until = webdriver.until;
     8  
     9  var elements = [
    10    'swagger-ui-container',
    11    'resources_container',
    12    'api_info',
    13    'resource_pet',
    14    'resource_store',
    15    'resource_user',
    16    'header'
    17  ];
    18  
    19  describe('swagger 1.x spec tests', function () {
    20    this.timeout(10 * 1000);
    21  
    22    before(function (done) {
    23      this.timeout(25 * 1000);
    24      servers.start('/v1.2/petstore/api-docs.json', done);
    25    });
    26  
    27    afterEach(function(){
    28      it('should not have any console errors', function (done) {
    29        driver.manage().logs().get('browser').then(function(browserLogs) {
    30          var errors = [];
    31          browserLogs.forEach(function(log){
    32            // 900 and above is "error" level. Console should not have any errors
    33            if (log.level.value > 900) {
    34              console.log('browser error message:', log.message); errors.push(log);
    35            }
    36          });
    37          expect(errors).to.be.empty;
    38          done();
    39        });
    40      });
    41    });
    42  
    43    it('should have "Swagger UI" in title', function () {
    44      return driver.wait(until.titleIs('Swagger UI'), 1000);
    45    });
    46  
    47    elements.forEach(function (id) {
    48      it('should render element: ' + id, function (done) {
    49        var locator = webdriver.By.id(id);
    50        driver.isElementPresent(locator).then(function (isPresent) {
    51          expect(isPresent).to.be.true;
    52          done();
    53        });
    54      });
    55    });
    56  
    57    // TODO: enable me
    58    xit('should find the contact name element', function(done){
    59      var locator = webdriver.By.css('.info_name');
    60      driver.isElementPresent(locator).then(function (isPresent) {
    61        expect(isPresent).to.be.true;
    62        done();
    63      });
    64    });
    65  
    66    it('should find the pet link', function(done){
    67      var locator = webdriver.By.xpath('//*[@data-id="pet"]');
    68      driver.isElementPresent(locator).then(function (isPresent) {
    69        expect(isPresent).to.be.true;
    70        done();
    71      });
    72    });
    73  
    74    // TODO: enable me
    75    xit('should find the pet resource description', function(done){
    76      var locator = webdriver.By.xpath('//div[contains(., "Operations about pets")]');
    77      driver.findElements(locator).then(function (elements) {
    78        expect(elements.length).to.not.equal(0);
    79        done();
    80      });
    81    });
    82  
    83    it('should find the user link', function(done){
    84      var locator = webdriver.By.xpath('//*[@data-id="user"]');
    85      driver.isElementPresent(locator).then(function (isPresent) {
    86        expect(isPresent).to.be.true;
    87        done();
    88      });
    89    });
    90  
    91    it('should find the store link', function(done){
    92      var locator = webdriver.By.xpath('//*[@data-id="store"]');
    93      driver.isElementPresent(locator).then(function (isPresent) {
    94        expect(isPresent).to.be.true;
    95        done();
    96      });
    97    });
    98  
    99    after(function(done){
   100      servers.close();
   101      done();
   102    });
   103  });