diff --git a/uberpage/src/components/App/App.jsx b/uberpage/src/components/App/App.jsx
index 535b8af..071e5d4 100644
--- a/uberpage/src/components/App/App.jsx
+++ b/uberpage/src/components/App/App.jsx
@@ -1,7 +1,7 @@
import React from 'react';
import './App.css';
-import UberTile from '../UberTile/UberTile.jsx';
-import data from '../../data';
+import UberPage from "../UberPage/UberPage";
+import data from "../../data";
function App() {
const defaultItem = {
@@ -11,48 +11,12 @@ function App() {
background_logo: 'UberPage.svg',
background_logo_size: '75%',
};
- if (data.settings.default_item === undefined || data.settings.default_item) { data.items.push(defaultItem); }
-
- function calculateNumberOfColumns() {
- if (data.items.length <= 3 || window.innerWidth < 400) {
- return 1;
- }
- if (data.items.length <= 8 || window.innerWidth < 800) {
- return 2;
- }
- return 3;
+ if (data.settings.default_item === undefined || data.settings.default_item) {
+ data.items.push(defaultItem);
}
-
- const numberOfColumns = calculateNumberOfColumns();
- const numberOfRows = Math.ceil(data.items.length / numberOfColumns);
- const itemHeight = 100 / numberOfRows;
- let itemWidth = 100 / numberOfColumns;
- const gridStyle = { gridTemplateColumns: 'auto '.repeat(numberOfColumns) };
- const emptySlots = (numberOfColumns * numberOfRows) - data.items.length;
-
return (
-
- {
- data.items.map((item, index) => {
- const gridColumnStart = (index % numberOfColumns) + 1;
- const gridRow = Math.floor((index / numberOfColumns) + 1);
- const isLastItem = index + 1 === data.items.length;
- const gridColumnEnd = isLastItem ? gridColumnStart + (emptySlots + 1) : gridColumnStart + 1;
- itemWidth = isLastItem ? itemWidth * (emptySlots + 1) : itemWidth;
- return (
-
- );
- })
- }
+
+
);
}
diff --git a/uberpage/src/components/App/App.test.jsx b/uberpage/src/components/App/App.test.jsx
index 6bc3fee..5b59eea 100644
--- a/uberpage/src/components/App/App.test.jsx
+++ b/uberpage/src/components/App/App.test.jsx
@@ -1,7 +1,6 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
-import * as data from '../../data';
describe('App Component', () => {
it('renders without crashing', () => {
@@ -9,104 +8,4 @@ describe('App Component', () => {
ReactDOM.render(
, div);
ReactDOM.unmountComponentAtNode(div);
});
-
- it('renders at least default tile if data contains no items', () => {
- data.default = {
- items: [],
- settings: {
- default_link_target: '_blank'
- }
- };
-
- const div = document.createElement('div');
- ReactDOM.render(
, div);
- const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
-
- expect(uberTiles.length).toBe(1);
- expect(uberTiles[0].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 100vh; min-height: 100vh; max-height: 100vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
- ReactDOM.unmountComponentAtNode(div);
- });
-
- it('renders 4 tiles in 2 columns if data contains 3 items', () => {
- data.default = {
- items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}],
- settings: {
- default_link_target: '_blank'
- }
- };
-
- const div = document.createElement('div');
- ReactDOM.render(
, div);
- const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
- expect(uberTiles.length).toBe(4);
- expect(uberTiles[0].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[1].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[2].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[3].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3;');
- ReactDOM.unmountComponentAtNode(div);
- });
-
- it('renders 3 tiles in 1 column if data contains 2 items', () => {
- data.default = {
- items: [{title: 'item1'}, {title: 'item2'}],
- settings: {
- default_link_target: '_blank'
- }
- };
-
- const div = document.createElement('div');
- ReactDOM.render(
, div);
- const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
- expect(uberTiles.length).toBe(3);
- expect(uberTiles[0].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[1].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[2].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 4;');
- ReactDOM.unmountComponentAtNode(div);
- });
-
- it('renders 9 tiles in 3 column if data contains 8 items', () => {
- data.default = {
- items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}, {title: 'item4'}, {title: 'item5'}, {title: 'item6'}, {title: 'item7'}, {title: 'item8'}],
- settings: {
- default_link_target: '_blank'
- }
- };
-
- const div = document.createElement('div');
- ReactDOM.render(
, div);
- const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
- expect(uberTiles.length).toBe(9);
- expect(uberTiles[0].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[1].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[2].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[3].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[4].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[5].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 3; grid-column-end: 4; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[6].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 4;');
- expect(uberTiles[7].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; grid-row-end: 4;');
- expect(uberTiles[8].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 3; grid-column-end: 4; grid-row-start: 3; grid-row-end: 4;');
- ReactDOM.unmountComponentAtNode(div);
- });
-
- it('renders 7 tiles in 2 column if data contains 6 items', () => {
- data.default = {
- items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}, {title: 'item4'}, {title: 'item5'}, {title: 'item6'}],
- settings: {
- default_link_target: '_blank'
- }
- };
-
- const div = document.createElement('div');
- ReactDOM.render(
, div);
- const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
- expect(uberTiles.length).toBe(7);
- expect(uberTiles[0].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[1].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;');
- expect(uberTiles[2].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[3].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3;');
- expect(uberTiles[4].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 4;');
- expect(uberTiles[5].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; grid-row-end: 4;');
- expect(uberTiles[6].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 3; grid-row-start: 4; grid-row-end: 5;');
- ReactDOM.unmountComponentAtNode(div);
- });
});
diff --git a/uberpage/src/components/UberPage/UberPage.css b/uberpage/src/components/UberPage/UberPage.css
new file mode 100644
index 0000000..df8884d
--- /dev/null
+++ b/uberpage/src/components/UberPage/UberPage.css
@@ -0,0 +1,7 @@
+.UberPage {
+ text-align: center;
+ min-height: 100vh;
+ background-color: #282c34;
+ overflow: hidden;
+ display: grid;
+}
diff --git a/uberpage/src/components/UberPage/UberPage.jsx b/uberpage/src/components/UberPage/UberPage.jsx
new file mode 100644
index 0000000..4e4f89d
--- /dev/null
+++ b/uberpage/src/components/UberPage/UberPage.jsx
@@ -0,0 +1,58 @@
+import React from 'react';
+import './UberPage.css';
+import UberTile from '../UberTile/UberTile.jsx';
+
+class UberPage extends React.Component {
+ state = {
+ pageWidth: window.innerWidth
+ };
+ render() {
+ const items = this.props.items;
+ const settings = this.props.settings;
+ function calculateNumberOfColumns() {
+ if (items.length <= 3 || window.innerWidth < 450) {
+ return 1;
+ }
+ if (items.length <= 8 || window.innerWidth < 800) {
+ return 2;
+ }
+ return 3;
+ }
+ window.onresize = () => this.setState({pageWidth: window.innerWidth});
+
+ const numberOfColumns = calculateNumberOfColumns();
+ const numberOfRows = Math.ceil(items.length / numberOfColumns);
+ const itemHeight = 100 / numberOfRows;
+ let itemWidth = 100 / numberOfColumns;
+ const gridStyle = {gridTemplateColumns: 'auto '.repeat(numberOfColumns)};
+ const emptySlots = (numberOfColumns * numberOfRows) - items.length;
+
+ return (
+
+ {
+ items.map((item, index) => {
+ const gridColumnStart = (index % numberOfColumns) + 1;
+ const gridRow = Math.floor((index / numberOfColumns) + 1);
+ const isLastItem = index + 1 === items.length;
+ const gridColumnEnd = isLastItem ? gridColumnStart + (emptySlots + 1) : gridColumnStart + 1;
+ itemWidth = isLastItem ? itemWidth * (emptySlots + 1) : itemWidth;
+ return (
+
+ );
+ })
+ }
+
+ );
+ }
+}
+
+export default UberPage;
diff --git a/uberpage/src/components/UberPage/UberPage.test.jsx b/uberpage/src/components/UberPage/UberPage.test.jsx
new file mode 100644
index 0000000..533c5c4
--- /dev/null
+++ b/uberpage/src/components/UberPage/UberPage.test.jsx
@@ -0,0 +1,128 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import UberPage from './UberPage.jsx';
+import * as data from '../../data';
+
+describe('UberPage Component', () => {
+ it('renders without crashing', () => {
+ const div = document.createElement('div');
+ ReactDOM.render(
, div);
+ ReactDOM.unmountComponentAtNode(div);
+ });
+
+ it('renders no tiles if data contains no items', () => {
+ data.default = {
+ items: [],
+ settings: {
+ default_link_target: '_blank'
+ }
+ };
+
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
+
+ expect(uberTiles.length).toBe(0);
+ ReactDOM.unmountComponentAtNode(div);
+ });
+
+ it('renders 1 tile if data contains 1 item', () => {
+ data.default = {
+ items: [{title: 'item1'}],
+ settings: {
+ default_link_target: '_blank'
+ }
+ };
+
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
+
+ expect(uberTiles.length).toBe(1);
+ expect(uberTiles[0].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 100vh; min-height: 100vh; max-height: 100vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
+ ReactDOM.unmountComponentAtNode(div);
+ });
+
+ it('renders 4 tiles in 2 columns if data contains 4 items', () => {
+ data.default = {
+ items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}, {title: 'item4'}],
+ settings: {
+ default_link_target: '_blank'
+ }
+ };
+
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
+ expect(uberTiles.length).toBe(4);
+ expect(uberTiles[0].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[1].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[2].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[3].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 50vh; min-height: 50vh; max-height: 50vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3;');
+ ReactDOM.unmountComponentAtNode(div);
+ });
+
+ it('renders 3 tiles in 1 column if data contains 3 items', () => {
+ data.default = {
+ items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}],
+ settings: {
+ default_link_target: '_blank'
+ }
+ };
+
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
+ expect(uberTiles.length).toBe(3);
+ expect(uberTiles[0].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[1].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[2].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 4;');
+ ReactDOM.unmountComponentAtNode(div);
+ });
+
+ it('renders 9 tiles in 3 column if data contains 9 items', () => {
+ data.default = {
+ items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}, {title: 'item4'}, {title: 'item5'}, {title: 'item6'}, {title: 'item7'}, {title: 'item8'}, {title: 'item9'}],
+ settings: {
+ default_link_target: '_blank'
+ }
+ };
+
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
+ expect(uberTiles.length).toBe(9);
+ expect(uberTiles[0].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[1].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[2].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[3].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[4].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[5].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 3; grid-column-end: 4; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[6].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 4;');
+ expect(uberTiles[7].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; grid-row-end: 4;');
+ expect(uberTiles[8].attributes[1].value).toBe('width: 33.333333333333336vw; min-width: 33.333333333333336vw; max-width: 33.333333333333336vw; height: 33.333333333333336vh; min-height: 33.333333333333336vh; max-height: 33.333333333333336vh; grid-column-start: 3; grid-column-end: 4; grid-row-start: 3; grid-row-end: 4;');
+ ReactDOM.unmountComponentAtNode(div);
+ });
+
+ it('renders 7 tiles in 2 column if data contains 7 items', () => {
+ data.default = {
+ items: [{title: 'item1'}, {title: 'item2'}, {title: 'item3'}, {title: 'item4'}, {title: 'item5'}, {title: 'item6'}, {title: 'item7'}],
+ settings: {
+ default_link_target: '_blank'
+ }
+ };
+
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ const uberTiles = ReactDOM.findDOMNode(div).getElementsByClassName('UberTile');
+ expect(uberTiles.length).toBe(7);
+ expect(uberTiles[0].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[1].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;');
+ expect(uberTiles[2].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[3].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3;');
+ expect(uberTiles[4].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 4;');
+ expect(uberTiles[5].attributes[1].value).toBe('width: 50vw; min-width: 50vw; max-width: 50vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; grid-row-end: 4;');
+ expect(uberTiles[6].attributes[1].value).toBe('width: 100vw; min-width: 100vw; max-width: 100vw; height: 25vh; min-height: 25vh; max-height: 25vh; grid-column-start: 1; grid-column-end: 3; grid-row-start: 4; grid-row-end: 5;');
+ ReactDOM.unmountComponentAtNode(div);
+ });
+});