Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/i18n / dist / src / onesky / api.spec.js
Size: Mime:
const onesky = require('@brainly/onesky-utils');
const { getProjectLanguages, uploadProjectTranslation, getProjectMessagesByLanguage } = require('./api');

jest.mock('@brainly/onesky-utils');

describe('OneSky API', () => {
  test('getProjectLanguages', async () => {
    const response = { data: [{ code: 'xx' }] };
    onesky.getLanguages.mockResolvedValue(JSON.stringify(response));

    const projectLanguages = await getProjectLanguages('1234', { apiKey: 'apiKey', secret: 'secret' });

    expect(projectLanguages).toEqual(response.data);
    expect(onesky.getLanguages).toHaveBeenCalledWith({ apiKey: 'apiKey', projectId: '1234', secret: 'secret' });
  });

  test('uploadProjectTranslation', async () => {
    const projectId = '1234';
    const sourceMessages = { 'test.key': 'test value' };
    const credentials = { apiKey: 'apiKey', secret: 'secret' };

    await uploadProjectTranslation({ language: 'en', projectId }, sourceMessages, credentials);

    expect(onesky.postFile).toHaveBeenCalledWith({
      content: JSON.stringify(sourceMessages),
      fileName: 'translations.json',
      format: 'HIERARCHICAL_JSON',
      keepStrings: true,
      language: 'en',
      projectId,
      ...credentials,
    });
  });

  test('getProjectMessagesByLanguage', async () => {
    const response = { 'i18n.key1': 'Key 1' };
    onesky.getFile.mockResolvedValue(JSON.stringify(response));

    const options = { language: 'en', projectId: '1234' };
    const credentials = { apiKey: 'apiKey', secret: 'secret' };

    const projectMessages = await getProjectMessagesByLanguage(options, credentials);

    expect(onesky.getFile).toHaveBeenCalledWith({
      fileName: 'translations.json',
      ...options,
      ...credentials,
    });
    expect(projectMessages).toEqual(response);
  });
});