Files
js-openstack-lib/test/unit/glanceTest.js
Michael Krotscheck c8dfb08c50 Miscellaneous test cleanup.
This patch cleans up our constructor exception tests, and removes
old versions(), version(), and serviceEndpoint() tests that are
now handled in the parent class. Service specific tests have been
kept, and several tests to assert correct API behavior for specific
implementations have been added.

Change-Id: Ib42d94033ebb5613ee7e5c96654ab22f31fe4feb
2016-09-22 07:38:30 -07:00

105 lines
2.8 KiB
JavaScript

/*
* Copyright (c) 2016 Hewlett Packard Enterprise Development L.P.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
* the License for the specific language governing permissions and limitations
* under the License.
*/
import Glance from "../../src/glance.js";
import * as mockData from "./helpers/data/glance";
import fetchMock from "fetch-mock";
describe('Glance', () => {
afterEach(fetchMock.restore);
it('should export a class', () => {
const glance = new Glance(mockData.config);
expect(glance).toBeDefined();
});
it('should throw an error for an empty config', () => {
expect(() => new Glance()).toThrow();
});
describe("version()", () => {
it("Should return a supported version of the glance API.", (done) => {
const glance = new Glance(mockData.config);
fetchMock.mock(mockData.root());
glance.version()
.then((version) => {
expect(version.id).toEqual('v2.3');
done();
})
.catch((error) => done.fail(error));
});
});
describe("serviceEndpoint()", () => {
it("Should return a valid endpoint to the glance API.", (done) => {
const glance = new Glance(mockData.config);
fetchMock.mock(mockData.root());
glance.serviceEndpoint()
.then((endpoint) => {
expect(endpoint).toEqual('http://192.168.99.99:9292/v2/');
done();
})
.catch((error) => done.fail(error));
});
});
describe("imageList()", () => {
let glance = null;
beforeEach(() => {
fetchMock.mock(mockData.root());
glance = new Glance(mockData.config);
});
it("should return the images as an array.", (done) => {
const token = 'test_token';
fetchMock.mock(mockData.imageList(token));
glance
.imageList(token)
.then((images) => {
expect(images.length).not.toBe(0);
done();
})
.catch((error) => done.fail(error));
});
it("Should not cache its results", (done) => {
const token = 'test_token';
let mockOptions = mockData.imageList(token);
fetchMock.mock(mockOptions);
glance
.imageList(token)
.then(() => {
expect(fetchMock.calls(mockOptions.name).length).toEqual(1);
return glance.imageList(token);
})
.then(() => {
expect(fetchMock.calls(mockOptions.name).length).toEqual(2);
done();
})
.catch((error) => done.fail(error));
});
});
});