+
+
+ {generateList(artworks, groupBy, size, onExpand)}
+
+
+
+
{`${size} of ${total}`} Categories
+
+
+
+ );
+};
+
+ArtworkList.propTypes = {
+ artworks: PropTypes.object.isRequired,
+ groupBy: PropTypes.string.isRequired,
+ offset: PropTypes.number.isRequired,
+ total: PropTypes.number.isRequired,
+ browser: PropTypes.object,
+ onExpand: PropTypes.func.isRequired,
+ onShowLess: PropTypes.func.isRequired,
+ onShowMore: PropTypes.func.isRequired,
+ onShowAll: PropTypes.func.isRequired
+};
+
+export default ArtworkList;
diff --git a/client/components/artwork/ArtworkList.test.js b/client/components/artwork/ArtworkList.test.js
new file mode 100644
index 0000000..c949c1b
--- /dev/null
+++ b/client/components/artwork/ArtworkList.test.js
@@ -0,0 +1,50 @@
+import React from 'react';
+import expect from 'expect';
+import sinon from 'sinon';
+import { shallow } from 'enzyme';
+import ArtworkList from './ArtworkList';
+import { normalizedArtworks } from '../../stubs';
+
+
+describe('Component - ArtworkList', () => {
+ const total = Object.keys(normalizedArtworks).length; // always showing all categories
+
+ const createElement = (groupBy, onExpand, onShowMore, onShowLess, onShowAll) => (
+ shallow(