UNPKG

@kineticdata/react

Version:
136 lines (135 loc) 4.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _axios = _interopRequireDefault(require("axios")); var _profile = require("./profile"); var _user_builder = require("../../../tests/utils/user_builder"); var _promises = require("../../../tests/utils/promises"); // Mock out the bundle object from a dependency. jest.mock('../../helpers', function () { return { bundle: { apiLocation: function apiLocation() { return 'user/app/api/v1'; }, kappSlug: function kappSlug() { return 'mock-kapp'; } } }; }); describe('profile api', function () { describe('#fetchProfile', function () { describe('when successful', function () { var response; var testUser; beforeEach(function () { response = { status: 200, data: {} }; testUser = new _user_builder.UserBuilder().stub().withAttribute('Attribute', 'value').build(); response.data = testUser; _axios["default"].get = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _profile.fetchProfile)().then(function (_ref) { var errors = _ref.errors; expect(errors).toBeUndefined(); }); }); test('returns a profile', function () { expect.assertions(1); return (0, _profile.fetchProfile)().then(function (_ref2) { var profile = _ref2.profile; expect(profile).toMatchObject({ username: testUser.username, displayName: testUser.displayName }); }); }); test('returns attributes', function () { expect.assertions(2); return (0, _profile.fetchProfile)().then(function (_ref3) { var profile = _ref3.profile; expect(profile.attributes).toBeDefined(); expect(profile.attributes).toBeInstanceOf(Array); }); }); }); }); describe('#updateProfile', function () { describe('when successful', function () { var response; var testUser; beforeEach(function () { response = { status: 200, data: { user: {} } }; testUser = new _user_builder.UserBuilder().stub().withAttribute('Attribute', 'value').build(); response.data.user = testUser; _axios["default"].put = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _profile.updateProfile)({ profile: testUser }).then(function (_ref4) { var errors = _ref4.errors; expect(errors).toBeUndefined(); }); }); test('returns a profile', function () { expect.assertions(1); return (0, _profile.updateProfile)({ profile: testUser }).then(function (_ref5) { var profile = _ref5.profile; expect(profile).toMatchObject({ username: testUser.username, displayName: testUser.displayName }); }); }); test('returns attributes', function () { expect.assertions(2); return (0, _profile.updateProfile)({ profile: testUser }).then(function (_ref6) { var profile = _ref6.profile; expect(profile.attributes).toBeDefined(); expect(profile.attributes).toBeInstanceOf(Array); }); }); }); describe('when unsuccessful', function () { var response; beforeEach(function () { response = { status: 500, data: {} }; _axios["default"].put = (0, _promises.rejectPromiseWith)({ response: response }); }); test('throws an exception when no profile object is provided', function () { expect(function () { (0, _profile.updateProfile)(); }).toThrow(); }); test('does return errors', function () { expect.assertions(1); return (0, _profile.updateProfile)({ profile: {} }).then(function (_ref7) { var error = _ref7.error; expect(error).toBeDefined(); }); }); }); }); });