UNPKG

netlify-cms-core

Version:

Netlify CMS core application, see netlify-cms package for the main distribution.

77 lines (72 loc) 2.08 kB
import integrations from '../integrations'; import { CONFIG_SUCCESS } from '../../actions/config'; import { FOLDER } from '../../constants/collectionTypes'; import type { ConfigAction } from '../../actions/config'; describe('integrations', () => { it('should return default state when no integrations', () => { const result = integrations(null, { type: CONFIG_SUCCESS, payload: { integrations: [] }, } as ConfigAction); expect(result && result.toJS()).toEqual({ providers: {}, hooks: {}, }); }); it('should return hooks and providers map when has integrations', () => { const result = integrations(null, { type: CONFIG_SUCCESS, payload: { integrations: [ { hooks: ['listEntries'], collections: '*', provider: 'algolia', applicationID: 'applicationID', apiKey: 'apiKey', }, { hooks: ['listEntries'], collections: ['posts'], provider: 'algolia', applicationID: 'applicationID', apiKey: 'apiKey', }, { hooks: ['assetStore'], provider: 'assetStore', getSignedFormURL: 'https://asset.store.com/signedUrl', }, ], collections: [ { name: 'posts', label: 'Posts', type: FOLDER }, { name: 'pages', label: 'Pages', type: FOLDER }, { name: 'faq', label: 'FAQ', type: FOLDER }, ], }, } as ConfigAction); expect(result && result.toJS()).toEqual({ providers: { algolia: { applicationID: 'applicationID', apiKey: 'apiKey', }, assetStore: { getSignedFormURL: 'https://asset.store.com/signedUrl', }, }, hooks: { posts: { listEntries: 'algolia', }, pages: { listEntries: 'algolia', }, faq: { listEntries: 'algolia', }, assetStore: 'assetStore', }, }); }); });