Skip to content

Commit

Permalink
yarn run format
Browse files Browse the repository at this point in the history
  • Loading branch information
s0 committed Jun 26, 2019
1 parent 53866c5 commit 80cf364
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 66 deletions.
Original file line number Diff line number Diff line change
@@ -1,44 +1,43 @@
import configureMockStore from 'redux-mock-store'
import thunk from 'redux-thunk'
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { fromJS } from 'immutable';
import { insertMedia } from '../mediaLibrary';

const middlewares = [thunk]
const mockStore = configureMockStore(middlewares)
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);

describe('mediaLibrary', () => {
describe('insertMedia', () => {

it('test public URL is returned directly', () => {
const store = mockStore({});
store.dispatch(insertMedia({url: '//localhost/foo.png'}));
store.dispatch(insertMedia({ url: '//localhost/foo.png' }));
expect(store.getActions()[0]).toEqual({
type: 'MEDIA_INSERT',
payload: {mediaPath: '//localhost/foo.png'}
payload: { mediaPath: '//localhost/foo.png' },
});
});

it('Test relative path resolution', () => {
const store = mockStore({
config: fromJS({
media_folder_relative: true,
media_folder: 'content/media'
media_folder: 'content/media',
}),
entryDraft: fromJS({
entry: {
collection: 'blog-posts'
}
collection: 'blog-posts',
},
}),
collections: fromJS({
'blog-posts': {
folder: 'content/blog/posts'
}
})
folder: 'content/blog/posts',
},
}),
});
store.dispatch(insertMedia({ name: 'foo.png' }));
expect(store.getActions()[0]).toEqual({
type: 'MEDIA_INSERT',
payload: { mediaPath: '../../media/foo.png' }
payload: { mediaPath: '../../media/foo.png' },
});
});

Expand All @@ -48,49 +47,48 @@ describe('mediaLibrary', () => {
config: fromJS({
media_folder_relative: true,
media_folder: 'content/media',
public_folder: '/static/assets/media'
public_folder: '/static/assets/media',
}),
entryDraft: fromJS({
entry: {
collection: 'blog-posts'
}
collection: 'blog-posts',
},
}),
collections: fromJS({
'blog-posts': {
folder: 'content/blog/posts'
}
})
folder: 'content/blog/posts',
},
}),
});
store.dispatch(insertMedia({ name: 'foo.png' }));
expect(store.getActions()[0]).toEqual({
type: 'MEDIA_INSERT',
payload: { mediaPath: '../../media/foo.png' }
payload: { mediaPath: '../../media/foo.png' },
});
});

it('Test public_folder resolution', () => {
const store = mockStore({
config: fromJS({
public_folder: '/static/assets/media'
})
public_folder: '/static/assets/media',
}),
});
store.dispatch(insertMedia({ name: 'foo.png' }));
expect(store.getActions()[0]).toEqual({
type: 'MEDIA_INSERT',
payload: { mediaPath: '/static/assets/media/foo.png' }
payload: { mediaPath: '/static/assets/media/foo.png' },
});
});

it('Test incorrect usage', () => {
const store = mockStore();

try {
store.dispatch(insertMedia({ foo: 'foo.png' }));
throw new Error('Expected Exception')
} catch(e) {
throw new Error('Expected Exception');
} catch (e) {
expect(e.message).toEqual('Incorrect usage, expected {url} or {file}');
}
});

});
});
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ class MediaLibrary extends React.Component {
const { selectedFile } = this.state;
const { name, url, urlIsPublicPath } = selectedFile;
const { insertMedia } = this.props;
insertMedia(urlIsPublicPath ? {url} : {name});
insertMedia(urlIsPublicPath ? { url } : { name });
this.handleClose();
};

Expand Down
94 changes: 57 additions & 37 deletions packages/netlify-cms-lib-util/src/__tests__/path.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,70 +2,90 @@ import { resolveMediaFilename, fileExtensionWithSeparator, fileExtension } from

describe('resolveMediaFilename', () => {
it('publicly Accessible URL, no slash', () => {
expect(resolveMediaFilename('image.png', {
publicFolder: 'static/assets'
})).toEqual('/static/assets/image.png');
expect(
resolveMediaFilename('image.png', {
publicFolder: 'static/assets',
}),
).toEqual('/static/assets/image.png');
});

it('publicly Accessible URL, with slash', () => {
expect(resolveMediaFilename('image.png', {
publicFolder: '/static/assets'
})).toEqual('/static/assets/image.png');
expect(
resolveMediaFilename('image.png', {
publicFolder: '/static/assets',
}),
).toEqual('/static/assets/image.png');
});

it('publicly Accessible URL, root', () => {
expect(resolveMediaFilename('image.png', {
publicFolder: '/'
})).toEqual('/image.png');
expect(
resolveMediaFilename('image.png', {
publicFolder: '/',
}),
).toEqual('/image.png');
});

it('relative URL, same folder', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/posts',
collectionFolder: '/content/posts'
})).toEqual('image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/posts',
collectionFolder: '/content/posts',
}),
).toEqual('image.png');
});

it('relative URL, same folder, with slash', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/posts/',
collectionFolder: '/content/posts'
})).toEqual('image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/posts/',
collectionFolder: '/content/posts',
}),
).toEqual('image.png');
});

it('relative URL, same folder, with slashes', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/posts/',
collectionFolder: '/content/posts/'
})).toEqual('image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/posts/',
collectionFolder: '/content/posts/',
}),
).toEqual('image.png');
});

it('relative URL, sibling folder', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/images/',
collectionFolder: '/content/posts/'
})).toEqual('../images/image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/images/',
collectionFolder: '/content/posts/',
}),
).toEqual('../images/image.png');
});

it('relative URL, cousin folder', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/images/pngs/',
collectionFolder: '/content/markdown/posts/'
})).toEqual('../../images/pngs/image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/images/pngs/',
collectionFolder: '/content/markdown/posts/',
}),
).toEqual('../../images/pngs/image.png');
});

it('relative URL, parent folder', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/',
collectionFolder: '/content/posts'
})).toEqual('../image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/',
collectionFolder: '/content/posts',
}),
).toEqual('../image.png');
});

it('relative URL, child folder', () => {
expect(resolveMediaFilename('image.png', {
mediaFolder: '/content/images',
collectionFolder: '/content/'
})).toEqual('images/image.png');
expect(
resolveMediaFilename('image.png', {
mediaFolder: '/content/images',
collectionFolder: '/content/',
}),
).toEqual('images/image.png');
});
});

Expand Down

0 comments on commit 80cf364

Please sign in to comment.