UNPKG

@kineticdata/react

Version:
354 lines (353 loc) 10.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _axios = _interopRequireDefault(require("axios")); var _teams = require("./teams"); var _team_builder = require("../../../tests/utils/team_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 'team/app/api/v1'; }, kappSlug: function kappSlug() { return 'mock-kapp'; } } }; }); describe('teams api', function () { describe('#fetchTeams', function () { describe('when successful', function () { var response; var testTeam; beforeEach(function () { response = { status: 200, data: { teams: [] } }; testTeam = new _team_builder.TeamBuilder().stub().withAttribute('Attribute', 'value').build(); response.data.teams.push(testTeam); _axios["default"].get = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _teams.fetchTeams)().then(function (_ref) { var error = _ref.error; expect(error).toBeUndefined(); }); }); test('returns an array of teams', function () { expect.assertions(2); return (0, _teams.fetchTeams)().then(function (_ref2) { var teams = _ref2.teams; expect(teams).toBeInstanceOf(Array); expect(teams[0]).toMatchObject({ name: testTeam.name, slug: testTeam.slug }); }); }); test('returns attributes', function () { expect.assertions(2); return (0, _teams.fetchTeams)().then(function (_ref3) { var teams = _ref3.teams; expect(teams[0].attributes).toBeDefined(); expect(teams[0].attributes).toBeInstanceOf(Array); }); }); }); }); describe('#fetchTeam', function () { describe('when successful', function () { var response; var testTeam; var teamSlug; beforeEach(function () { response = { status: 200, data: { team: {} } }; testTeam = new _team_builder.TeamBuilder().stub().withAttribute('Attribute', 'value').build(); teamSlug = testTeam.slug; response.data.team = testTeam; _axios["default"].get = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _teams.fetchTeam)({ teamSlug: teamSlug }).then(function (_ref4) { var error = _ref4.error; expect(error).toBeUndefined(); }); }); test('returns a team', function () { expect.assertions(1); return (0, _teams.fetchTeam)({ teamSlug: teamSlug }).then(function (_ref5) { var team = _ref5.team; expect(team).toMatchObject({ name: testTeam.name, slug: testTeam.slug }); }); }); test('returns attributes', function () { expect.assertions(2); return (0, _teams.fetchTeam)({ teamSlug: teamSlug, xlatAttributes: true }).then(function (_ref6) { var team = _ref6.team; expect(team.attributes).toBeDefined(); expect(team.attributes).toBeInstanceOf(Array); }); }); }); describe('when unsuccessful', function () { var response; beforeEach(function () { response = { status: 500, data: {} }; _axios["default"].get = (0, _promises.rejectPromiseWith)({ response: response }); }); test('throws an exception when no team slug is provided', function () { expect(function () { (0, _teams.fetchTeam)({}); }).toThrow(); }); test('does return errors', function () { expect.assertions(1); return (0, _teams.fetchTeam)({ teamSlug: 'fake', xlatAttributes: true }).then(function (_ref7) { var error = _ref7.error; expect(error).toBeDefined(); }); }); }); }); describe('#updateTeam', function () { describe('when successful', function () { var response; var testTeam; var teamSlug; beforeEach(function () { response = { status: 200, data: { team: {} } }; testTeam = new _team_builder.TeamBuilder().stub().withAttribute('Attribute', 'value').build(); teamSlug = testTeam.slug; response.data.team = testTeam; _axios["default"].put = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _teams.updateTeam)({ teamSlug: teamSlug, team: testTeam }).then(function (_ref8) { var error = _ref8.error; expect(error).toBeUndefined(); }); }); test('returns a team', function () { expect.assertions(1); return (0, _teams.updateTeam)({ teamSlug: teamSlug, team: testTeam }).then(function (_ref9) { var team = _ref9.team; expect(team).toMatchObject({ slug: testTeam.slug, name: testTeam.name }); }); }); test('returns attributes', function () { expect.assertions(2); return (0, _teams.updateTeam)({ teamSlug: teamSlug, team: testTeam }).then(function (_ref10) { var team = _ref10.team; expect(team.attributes).toBeDefined(); expect(team.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 team slug is provided', function () { expect(function () { (0, _teams.updateTeam)({ team: {} }); }).toThrow(); }); test('throws an uxception when no team object is provided', function () { expect(function () { (0, _teams.updateTeam)({ teamSlug: 'fake' }); }).toThrow(); }); test('does return errors', function () { expect.assertions(1); return (0, _teams.updateTeam)({ teamSlug: 'fake', team: {} }).then(function (_ref11) { var error = _ref11.error; expect(error).toBeDefined(); }); }); }); }); describe('#createTeam', function () { describe('when successful', function () { var response; var testTeam; beforeEach(function () { response = { status: 200, data: { team: {} } }; testTeam = new _team_builder.TeamBuilder().stub().withAttribute('Attribute', 'value').build(); response.data.team = testTeam; _axios["default"].post = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _teams.createTeam)({ team: testTeam }).then(function (_ref12) { var error = _ref12.error; expect(error).toBeUndefined(); }); }); test('returns a team', function () { expect.assertions(1); return (0, _teams.createTeam)({ team: testTeam }).then(function (_ref13) { var team = _ref13.team; expect(team).toMatchObject({ slug: testTeam.slug, name: testTeam.name }); }); }); test('returns attributes', function () { expect.assertions(2); return (0, _teams.createTeam)({ team: testTeam }).then(function (_ref14) { var team = _ref14.team; expect(team.attributes).toBeDefined(); expect(team.attributes).toBeInstanceOf(Array); }); }); }); describe('when unsuccessful', function () { var response; beforeEach(function () { response = { status: 500, data: {} }; _axios["default"].post = (0, _promises.rejectPromiseWith)({ response: response }); }); test('throws an exception when no team object is provided', function () { expect(function () { (0, _teams.createTeam)({}); }).toThrow(); }); test('does return errors', function () { expect.assertions(1); return (0, _teams.createTeam)({ team: {} }).then(function (_ref15) { var error = _ref15.error; expect(error).toBeDefined(); }); }); }); }); describe('#deleteTeam', function () { describe('when successful', function () { var response; var teamSlug = 'testteam'; beforeEach(function () { response = { status: 200, data: {} }; _axios["default"]["delete"] = (0, _promises.resolvePromiseWith)(response); }); test('does not return errors', function () { expect.assertions(1); return (0, _teams.deleteTeam)({ teamSlug: teamSlug }).then(function (_ref16) { var error = _ref16.error; expect(error).toBeUndefined(); }); }); }); describe('when unsuccessful', function () { var response; beforeEach(function () { response = { status: 500, data: {} }; _axios["default"]["delete"] = (0, _promises.rejectPromiseWith)({ response: response }); }); test('throws an exception when no teamSlug is provided', function () { expect(function () { (0, _teams.deleteTeam)({}); }).toThrow(); }); test('does return errors', function () { expect.assertions(1); return (0, _teams.deleteTeam)({ teamSlug: 'fake' }).then(function (_ref17) { var error = _ref17.error; expect(error).toBeDefined(); }); }); }); }); });