xhh 8d964cff52 Handle arbitrary object in JS client
Closes #2165

Other changes:

* Update JS client of the Petstore sample
* Add test cases for getPetByIdInObject and getInventoryInObject
2016-03-04 18:40:03 +08:00

89 lines
2.7 KiB
JavaScript

(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD.
define(['expect.js', '../../src/index'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
factory(require('expect.js'), require('../../src/index'));
} else {
// Browser globals (root is window)
factory(root.expect, root.SwaggerPetstore);
}
}(this, function(expect, SwaggerPetstore) {
'use strict';
var api;
beforeEach(function() {
api = new SwaggerPetstore.PetApi();
});
var createRandomPet = function() {
var id = new Date().getTime();
var pet = new SwaggerPetstore.Pet();
pet.setId(id);
pet.setName("pet" + id);
var category = new SwaggerPetstore.Category();
category.setId(id);
category.setName("category" + id);
pet.setCategory(category);
pet.setStatus('available');
var photos = ["http://foo.bar.com/1", "http://foo.bar.com/2"];
pet.setPhotoUrls(photos);
return pet;
};
describe('PetApi', function() {
it('should create and get pet', function(done) {
var pet = createRandomPet();
api.addPet({body: pet}, function(error) {
if (error) throw error;
api.getPetById(pet.id, function(error, fetched, response) {
if (error) throw error;
expect(response.status).to.be(200);
expect(response.ok).to.be(true);
expect(response.get('Content-Type')).to.be('application/json');
expect(fetched).to.be.a(SwaggerPetstore.Pet);
expect(fetched.id).to.be(pet.id);
expect(fetched.getPhotoUrls()).to.eql(pet.getPhotoUrls());
expect(fetched.getCategory()).to.be.a(SwaggerPetstore.Category);
expect(fetched.getCategory().getName()).to.be(pet.getCategory().getName());
api.deletePet(pet.id);
done();
});
});
});
it('getPetByIdInObject', function(done) {
var pet = createRandomPet();
api.addPet({body: pet}, function(error) {
if (error) throw error;
api.getPetByIdInObject(pet.id, function(error, fetched) {
if (error) throw error;
expect(fetched).to.be.a(SwaggerPetstore.InlineResponse200);
expect(fetched.id).to.be(pet.id);
expect(fetched.name).to.be(pet.name);
var categoryObj = fetched.category;
expect(categoryObj).to.be.a(Object);
expect(categoryObj).not.to.be.a(SwaggerPetstore.Category);
expect(categoryObj.id).to.be(pet.getCategory().getId());
expect(categoryObj.name).to.be(pet.getCategory().getName());
api.deletePet(pet.id);
done();
});
});
});
});
}));