@kineticdata/react
Version:
A React library for the Kinetic Platform
1,371 lines (1,369 loc) • 68.4 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
var _axios = _interopRequireDefault(require("axios"));
var _createError = _interopRequireDefault(require("axios/lib/core/createError"));
var _translations = require("./translations");
jest.mock('axios');
// Mock out the bundle object from a dependency.
jest.mock('../../helpers', function () {
return {
bundle: {
apiLocation: function apiLocation() {
return 'space/app/api/v1';
}
}
};
});
describe('translations api', function () {
describe('fetchAvailableLocales', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success fetch', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
locales: [{}, {}]
}
});
_context.next = 3;
return (0, _translations.fetchAvailableLocales)();
case 3:
result = _context.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/meta/locales', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
locales: [{}, {}]
});
case 6:
case "end":
return _context.stop();
}
}, _callee);
})));
test('success fetch localized', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
locales: [{}, {}]
}
});
_context2.next = 3;
return (0, _translations.fetchAvailableLocales)({
localeCode: 'en'
});
case 3:
result = _context2.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/meta/locales', {
params: {
localized: 'en'
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
locales: [{}, {}]
});
case 6:
case "end":
return _context2.stop();
}
}, _callee2);
})));
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee3() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context3.next = 3;
return (0, _translations.fetchAvailableLocales)();
case 3:
result = _context3.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/meta/locales', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context3.stop();
}
}, _callee3);
})));
});
describe('clearTranslationsCache', function () {
beforeEach(function () {
_axios["default"]["delete"].mockReset();
});
test('success clear', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee4() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_axios["default"]["delete"].mockResolvedValue({
status: 200,
data: {
message: 'success'
}
});
_context4.next = 3;
return (0, _translations.clearTranslationsCache)();
case 3:
result = _context4.sent;
expect(_axios["default"]["delete"].mock.calls).toEqual([['space/app/api/v1/translations/cache', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
message: 'success'
});
case 6:
case "end":
return _context4.stop();
}
}, _callee4);
})));
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee5() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
_axios["default"]["delete"].mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context5.next = 3;
return (0, _translations.clearTranslationsCache)();
case 3:
result = _context5.sent;
expect(_axios["default"]["delete"].mock.calls).toEqual([['space/app/api/v1/translations/cache', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context5.stop();
}
}, _callee5);
})));
});
describe('fetchStagedTranslations', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success all staged translations', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee6() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
changes: [{}, {}]
}
});
_context6.next = 3;
return (0, _translations.fetchStagedTranslations)();
case 3:
result = _context6.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/staged', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
changes: [{}, {}]
});
case 6:
case "end":
return _context6.stop();
}
}, _callee6);
})));
test('success staged translations by contexts', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee7() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee7$(_context7) {
while (1) switch (_context7.prev = _context7.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
changes: [{}, {}]
}
});
_context7.next = 3;
return (0, _translations.fetchStagedTranslations)({
contextName: 'custom.test'
});
case 3:
result = _context7.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/staged', {
params: {
context: 'custom.test'
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
changes: [{}, {}]
});
case 6:
case "end":
return _context7.stop();
}
}, _callee7);
})));
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee8() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee8$(_context8) {
while (1) switch (_context8.prev = _context8.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context8.next = 3;
return (0, _translations.fetchStagedTranslations)();
case 3:
result = _context8.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/staged', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context8.stop();
}
}, _callee8);
})));
});
describe('fetchDefaultLocale', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success fetch', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee9() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee9$(_context9) {
while (1) switch (_context9.prev = _context9.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
defaultLocale: {
code: 'en'
}
}
});
_context9.next = 3;
return (0, _translations.fetchDefaultLocale)();
case 3:
result = _context9.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/settings/defaultLocale', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
defaultLocale: {
code: 'en'
}
});
case 6:
case "end":
return _context9.stop();
}
}, _callee9);
})));
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee10() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee10$(_context10) {
while (1) switch (_context10.prev = _context10.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context10.next = 3;
return (0, _translations.fetchDefaultLocale)();
case 3:
result = _context10.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/settings/defaultLocale', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context10.stop();
}
}, _callee10);
})));
});
describe('setDefaultLocale', function () {
beforeEach(function () {
_axios["default"].put.mockReset();
});
test('success set', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee11() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee11$(_context11) {
while (1) switch (_context11.prev = _context11.next) {
case 0:
_axios["default"].put.mockResolvedValue({
status: 200,
data: {
defaultLocale: {
code: 'en'
}
}
});
_context11.next = 3;
return (0, _translations.setDefaultLocale)({
localeCode: 'en'
});
case 3:
result = _context11.sent;
expect(_axios["default"].put.mock.calls).toEqual([['space/app/api/v1/translations/settings/defaultLocale', {
code: 'en'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
defaultLocale: {
code: 'en'
}
});
case 6:
case "end":
return _context11.stop();
}
}, _callee11);
})));
test('missing localeCode', function () {
expect(function () {
(0, _translations.setDefaultLocale)({});
}).toThrowError('setDefaultLocale failed! The following required options are missing: localeCode');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee12() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee12$(_context12) {
while (1) switch (_context12.prev = _context12.next) {
case 0:
_axios["default"].put.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context12.next = 3;
return (0, _translations.setDefaultLocale)({
localeCode: 'en'
});
case 3:
result = _context12.sent;
expect(_axios["default"].put.mock.calls).toEqual([['space/app/api/v1/translations/settings/defaultLocale', {
code: 'en'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context12.stop();
}
}, _callee12);
})));
});
describe('fetchEnabledLocales', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success fetch', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee13() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee13$(_context13) {
while (1) switch (_context13.prev = _context13.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
locales: [{}, {}]
}
});
_context13.next = 3;
return (0, _translations.fetchEnabledLocales)();
case 3:
result = _context13.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/settings/locales', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
locales: [{}, {}]
});
case 6:
case "end":
return _context13.stop();
}
}, _callee13);
})));
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee14() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee14$(_context14) {
while (1) switch (_context14.prev = _context14.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context14.next = 3;
return (0, _translations.fetchEnabledLocales)();
case 3:
result = _context14.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/settings/locales', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context14.stop();
}
}, _callee14);
})));
});
describe('enableLocale', function () {
beforeEach(function () {
_axios["default"].post.mockReset();
});
test('success enable locale', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee15() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee15$(_context15) {
while (1) switch (_context15.prev = _context15.next) {
case 0:
_axios["default"].post.mockResolvedValue({
status: 200,
data: {
locale: {
code: 'en'
}
}
});
_context15.next = 3;
return (0, _translations.enableLocale)({
localeCode: 'en'
});
case 3:
result = _context15.sent;
expect(_axios["default"].post.mock.calls).toEqual([['space/app/api/v1/translations/settings/locales', {
code: 'en'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
locale: {
code: 'en'
}
});
case 6:
case "end":
return _context15.stop();
}
}, _callee15);
})));
test('missing localeCode', function () {
expect(function () {
(0, _translations.enableLocale)({});
}).toThrowError('enableLocale failed! The following required options are missing: localeCode');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee16() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee16$(_context16) {
while (1) switch (_context16.prev = _context16.next) {
case 0:
_axios["default"].post.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context16.next = 3;
return (0, _translations.enableLocale)({
localeCode: 'en'
});
case 3:
result = _context16.sent;
expect(_axios["default"].post.mock.calls).toEqual([['space/app/api/v1/translations/settings/locales', {
code: 'en'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context16.stop();
}
}, _callee16);
})));
});
describe('disableLocale', function () {
beforeEach(function () {
_axios["default"]["delete"].mockReset();
});
test('success disable locale', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee17() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee17$(_context17) {
while (1) switch (_context17.prev = _context17.next) {
case 0:
_axios["default"]["delete"].mockResolvedValue({
status: 200,
data: {
locale: {
code: 'en'
}
}
});
_context17.next = 3;
return (0, _translations.disableLocale)({
localeCode: 'en'
});
case 3:
result = _context17.sent;
expect(_axios["default"]["delete"].mock.calls).toEqual([['space/app/api/v1/translations/settings/locales/en', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
locale: {
code: 'en'
}
});
case 6:
case "end":
return _context17.stop();
}
}, _callee17);
})));
test('missing localeCode', function () {
expect(function () {
(0, _translations.disableLocale)({});
}).toThrowError('disableLocale failed! The following required options are missing: localeCode');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee18() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee18$(_context18) {
while (1) switch (_context18.prev = _context18.next) {
case 0:
_axios["default"]["delete"].mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context18.next = 3;
return (0, _translations.disableLocale)({
localeCode: 'en'
});
case 3:
result = _context18.sent;
expect(_axios["default"]["delete"].mock.calls).toEqual([['space/app/api/v1/translations/settings/locales/en', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context18.stop();
}
}, _callee18);
})));
});
describe('fetchContexts', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success fetch custom', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee19() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee19$(_context19) {
while (1) switch (_context19.prev = _context19.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
contexts: [{
name: 'custom.foo'
}]
}
});
_context19.next = 3;
return (0, _translations.fetchContexts)({
custom: true
});
case 3:
result = _context19.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {
params: {
custom: true
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
contexts: [{
name: 'custom.foo',
kapp: null,
form: null
}]
});
case 6:
case "end":
return _context19.stop();
}
}, _callee19);
})));
test('success fetch expected', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee20() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee20$(_context20) {
while (1) switch (_context20.prev = _context20.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
contexts: [{
name: 'custom.foo'
}, {
name: 'kapps.kappSlug.forms.formSlug'
}, {
name: 'datastore.forms.formSlug'
}]
}
});
_context20.next = 3;
return (0, _translations.fetchContexts)({
expected: true
});
case 3:
result = _context20.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {
params: {
expected: true
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
contexts: [{
name: 'custom.foo',
kapp: null,
form: null
}, {
name: 'kapps.kappSlug.forms.formSlug',
kapp: 'kappSlug',
form: 'formSlug'
}, {
name: 'datastore.forms.formSlug',
kapp: null,
form: 'formSlug'
}]
});
case 6:
case "end":
return _context20.stop();
}
}, _callee20);
})));
test('success fetch unexpected', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee21() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee21$(_context21) {
while (1) switch (_context21.prev = _context21.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
contexts: [{
name: 'kapps.kappSlug.forms.deletedFormSlug'
}]
}
});
_context21.next = 3;
return (0, _translations.fetchContexts)({
unexpected: true
});
case 3:
result = _context21.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {
params: {
unexpected: true
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
contexts: [{
name: 'kapps.kappSlug.forms.deletedFormSlug',
kapp: 'kappSlug',
form: 'deletedFormSlug'
}]
});
case 6:
case "end":
return _context21.stop();
}
}, _callee21);
})));
test('failure fetch tooManyFlags', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee22() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee22$(_context22) {
while (1) switch (_context22.prev = _context22.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 400', null, 400, null, {
status: 400,
statusText: 'The custom, expected, and unexpected flags can only be specified independently.'
}));
_context22.next = 3;
return (0, _translations.fetchContexts)({
expected: true,
unexpected: true
});
case 3:
result = _context22.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {
params: {
expected: true
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
badRequest: true,
statusCode: 400,
key: null,
message: 'The custom, expected, and unexpected flags can only be specified independently.'
}
});
case 6:
case "end":
return _context22.stop();
}
}, _callee22);
})));
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee23() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee23$(_context23) {
while (1) switch (_context23.prev = _context23.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context23.next = 3;
return (0, _translations.fetchContexts)();
case 3:
result = _context23.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context23.stop();
}
}, _callee23);
})));
});
describe('createContext', function () {
beforeEach(function () {
_axios["default"].post.mockReset();
});
test('success create', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee24() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee24$(_context24) {
while (1) switch (_context24.prev = _context24.next) {
case 0:
_axios["default"].post.mockResolvedValue({
status: 200,
data: {
context: {}
}
});
_context24.next = 3;
return (0, _translations.createContext)({
context: {
name: 'custom.test'
}
});
case 3:
result = _context24.sent;
expect(_axios["default"].post.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {
name: 'custom.test'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
context: {}
});
case 6:
case "end":
return _context24.stop();
}
}, _callee24);
})));
test('missing context', function () {
expect(function () {
(0, _translations.createContext)({});
}).toThrowError('createContext failed! The following required options are missing: context');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee25() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee25$(_context25) {
while (1) switch (_context25.prev = _context25.next) {
case 0:
_axios["default"].post.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context25.next = 3;
return (0, _translations.createContext)({
context: {}
});
case 3:
result = _context25.sent;
expect(_axios["default"].post.mock.calls).toEqual([['space/app/api/v1/translations/contexts', {}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context25.stop();
}
}, _callee25);
})));
});
describe('updateContext', function () {
beforeEach(function () {
_axios["default"].put.mockReset();
});
test('success update', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee26() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee26$(_context26) {
while (1) switch (_context26.prev = _context26.next) {
case 0:
_axios["default"].put.mockResolvedValue({
status: 200,
data: {
context: {}
}
});
_context26.next = 3;
return (0, _translations.updateContext)({
contextName: 'custom.test',
context: {
name: 'custom.other'
}
});
case 3:
result = _context26.sent;
expect(_axios["default"].put.mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test', {
name: 'custom.other'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
context: {}
});
case 6:
case "end":
return _context26.stop();
}
}, _callee26);
})));
test('missing contextName', function () {
expect(function () {
(0, _translations.updateContext)({
context: {}
});
}).toThrowError('updateContext failed! The following required options are missing: contextName');
});
test('missing context', function () {
expect(function () {
(0, _translations.updateContext)({
contextName: 'custom.test'
});
}).toThrowError('updateContext failed! The following required options are missing: context');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee27() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee27$(_context27) {
while (1) switch (_context27.prev = _context27.next) {
case 0:
_axios["default"].put.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context27.next = 3;
return (0, _translations.updateContext)({
contextName: 'custom.test',
context: {}
});
case 3:
result = _context27.sent;
expect(_axios["default"].put.mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test', {}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context27.stop();
}
}, _callee27);
})));
});
describe('deleteContext', function () {
beforeEach(function () {
_axios["default"]["delete"].mockReset();
});
test('success delete', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee28() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee28$(_context28) {
while (1) switch (_context28.prev = _context28.next) {
case 0:
_axios["default"]["delete"].mockResolvedValue({
status: 200,
data: {
context: {}
}
});
_context28.next = 3;
return (0, _translations.deleteContext)({
contextName: 'custom.test'
});
case 3:
result = _context28.sent;
expect(_axios["default"]["delete"].mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
context: {}
});
case 6:
case "end":
return _context28.stop();
}
}, _callee28);
})));
test('missing contextName', function () {
expect(function () {
(0, _translations.deleteContext)();
}).toThrowError('deleteContext failed! The following required options are missing: contextName');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee29() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee29$(_context29) {
while (1) switch (_context29.prev = _context29.next) {
case 0:
_axios["default"]["delete"].mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context29.next = 3;
return (0, _translations.deleteContext)({
contextName: 'custom.test'
});
case 3:
result = _context29.sent;
expect(_axios["default"]["delete"].mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context29.stop();
}
}, _callee29);
})));
});
describe('fetchContextKeys', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success fetch', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee30() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee30$(_context30) {
while (1) switch (_context30.prev = _context30.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
keys: [{}, {}]
}
});
_context30.next = 3;
return (0, _translations.fetchContextKeys)({
contextName: 'custom.test'
});
case 3:
result = _context30.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test/keys', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
keys: [{}, {}]
});
case 6:
case "end":
return _context30.stop();
}
}, _callee30);
})));
test('missing contextName', function () {
expect(function () {
(0, _translations.fetchContextKeys)();
}).toThrowError('fetchContextKeys failed! The following required options are missing: contextName');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee31() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee31$(_context31) {
while (1) switch (_context31.prev = _context31.next) {
case 0:
_axios["default"].get.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context31.next = 3;
return (0, _translations.fetchContextKeys)({
contextName: 'custom.test'
});
case 3:
result = _context31.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test/keys', {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context31.stop();
}
}, _callee31);
})));
});
describe('updateContextKey', function () {
beforeEach(function () {
_axios["default"].put.mockReset();
});
test('success update', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee32() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee32$(_context32) {
while (1) switch (_context32.prev = _context32.next) {
case 0:
_axios["default"].put.mockResolvedValue({
status: 200,
data: {
message: 'success'
}
});
_context32.next = 3;
return (0, _translations.updateContextKey)({
contextName: 'custom.test',
keyHash: 'asdf',
key: {
name: 'newKey'
}
});
case 3:
result = _context32.sent;
expect(_axios["default"].put.mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test/keys/asdf', {
name: 'newKey'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
message: 'success'
});
case 6:
case "end":
return _context32.stop();
}
}, _callee32);
})));
test('missing contextName', function () {
expect(function () {
(0, _translations.updateContextKey)({
keyHash: 'asdf',
key: {}
});
}).toThrowError('updateContextKey failed! The following required options are missing: contextName');
});
test('missing keyHash', function () {
expect(function () {
(0, _translations.updateContextKey)({
contextName: 'custom.test',
key: {}
});
}).toThrowError('updateContextKey failed! The following required options are missing: keyHash');
});
test('missing key', function () {
expect(function () {
(0, _translations.updateContextKey)({
contextName: 'custom.test',
keyHash: 'asdf'
});
}).toThrowError('updateContextKey failed! The following required options are missing: key');
});
test('forbidden', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee33() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee33$(_context33) {
while (1) switch (_context33.prev = _context33.next) {
case 0:
_axios["default"].put.mockRejectedValue((0, _createError["default"])('Request failed with status code 403', null, 403, null, {
status: 403,
statusText: 'Forbidden'
}));
_context33.next = 3;
return (0, _translations.updateContextKey)({
contextName: 'custom.test',
keyHash: 'asdf',
key: {
name: 'newKey'
}
});
case 3:
result = _context33.sent;
expect(_axios["default"].put.mock.calls).toEqual([['space/app/api/v1/translations/contexts/custom.test/keys/asdf', {
name: 'newKey'
}, {
params: {},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
error: {
forbidden: true,
statusCode: 403,
key: null,
message: 'Forbidden'
}
});
case 6:
case "end":
return _context33.stop();
}
}, _callee33);
})));
});
describe('fetchTranslations', function () {
beforeEach(function () {
_axios["default"].get.mockReset();
});
test('success fetch cached', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee34() {
var result;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee34$(_context34) {
while (1) switch (_context34.prev = _context34.next) {
case 0:
_axios["default"].get.mockResolvedValue({
status: 200,
data: {
entries: [{}, {}]
}
});
_context34.next = 3;
return (0, _translations.fetchTranslations)({
cache: true,
contextName: 'custom.test',
localeCode: 'en'
});
case 3:
result = _context34.sent;
expect(_axios["default"].get.mock.calls).toEqual([['space/app/api/v1/translations/entries', {
params: {
cache: true,
context: 'custom.test',
locale: 'en'
},
headers: {
'X-Kinetic-AuthAssumed': 'true'
}
}]]);
expect(result).toEqual({
entries: [{}, {}]
});
case 6:
case "end":
return _context34.stop();
}
}, _callee34);
})));
test('missing contextName', function () {
expect(func