mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Add some tests (#74)
This commit is contained in:
		
							parent
							
								
									2651e118a1
								
							
						
					
					
						commit
						0418603021
					
				| @ -2,6 +2,4 @@ sudo: false | ||||
| language: node_js | ||||
| node_js: | ||||
| - "6" | ||||
| script: | ||||
| - npm run lint | ||||
| - npm run build | ||||
| script: npm run test:ci | ||||
|  | ||||
							
								
								
									
										5
									
								
								frontend/jest-setup.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								frontend/jest-setup.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| // We have set timezone to make sure tests are correct
 | ||||
| 
 | ||||
| process.env.TZ = 'UTC'; | ||||
| @ -28,9 +28,9 @@ | ||||
|     "build:html": "cp public/*.* dist/.", | ||||
|     "start": "NODE_ENV=development webpack-dev-server --config webpack.config.js --progress --colors", | ||||
|     "start:heroku": "UNLEASH_API=http://unleash.herokuapp.com npm run start", | ||||
|     "lint": "eslint . --ext=js,jsx", | ||||
|     "test": "npm run build", | ||||
|     "test:ci": "npm run test", | ||||
|     "lint": "eslint . --ext js,jsx", | ||||
|     "test": "jest", | ||||
|     "test:ci": "npm run lint && npm run build && npm run test", | ||||
|     "prepublish": "npm run build" | ||||
|   }, | ||||
|   "main": "./index.js", | ||||
| @ -69,13 +69,25 @@ | ||||
|     "eslint-config-finn-react": "^1.0.0-alpha.2", | ||||
|     "eslint-plugin-react": "^6.2.0", | ||||
|     "extract-text-webpack-plugin": "^1.0.1", | ||||
|     "identity-obj-proxy": "^3.0.0", | ||||
|     "jest": "^19.0.2", | ||||
|     "node-sass": "~3.12.1", | ||||
|     "postcss-loader": "^0.13.0", | ||||
|     "react-test-renderer": "^15.4.2", | ||||
|     "redux-devtools": "^3.3.1", | ||||
|     "sass-loader": "^4.0.2", | ||||
|     "style-loader": "^0.13.1", | ||||
|     "toolbox-loader": "0.0.3", | ||||
|     "webpack": "^1.13.2", | ||||
|     "webpack-dev-server": "^1.15.1" | ||||
|   }, | ||||
|   "jest": { | ||||
|     "moduleNameMapper": { | ||||
|       "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/src/__mocks__/fileMock.js", | ||||
|       "\\.(css|scss)$": "identity-obj-proxy" | ||||
|     }, | ||||
|     "setupFiles": [ | ||||
|       "<rootDir>/jest-setup.js" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
|  | ||||
							
								
								
									
										1
									
								
								frontend/src/__mocks__/fileMock.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/src/__mocks__/fileMock.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| module.exports = 'test-file-stub'; | ||||
							
								
								
									
										20
									
								
								frontend/src/__mocks__/react-mdl.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								frontend/src/__mocks__/react-mdl.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| module.exports = { | ||||
|     Card: 'react-mdl-Card', | ||||
|     CardTitle: 'react-mdl-CardTitle', | ||||
|     CardText: 'react-mdl-CardText', | ||||
|     CardMenu: 'react-mdl-CardMenu', | ||||
|     DataTable: 'react-mdl-DataTable', | ||||
|     Cell: 'react-mdl-Cell', | ||||
|     Grid: 'react-mdl-Grid', | ||||
|     Icon: 'react-mdl-Icon', | ||||
|     IconButton: 'react-mdl-IconButton', | ||||
|     List: 'react-mdl-List', | ||||
|     ListItem: 'react-mdl-ListItem', | ||||
|     ListItemContent: 'react-mdl-ListItemContent', | ||||
|     ProgressBar: 'react-mdl-ProgressBar', | ||||
|     Switch: 'react-mdl-Switch', | ||||
|     Tab: 'react-mdl-Tab', | ||||
|     Tabs: 'react-mdl-Tabs', | ||||
|     TableHeader: 'react-mdl-TableHeader', | ||||
|     Textfield: 'react-mdl-Textfield', | ||||
| }; | ||||
							
								
								
									
										5
									
								
								frontend/src/component/application/__tests__/.eslintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								frontend/src/component/application/__tests__/.eslintrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| { | ||||
|     "env": { | ||||
|         "jest": true | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,7 @@ | ||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||
| 
 | ||||
| exports[`renders correctly if no application 1`] = ` | ||||
| <react-mdl-ProgressBar | ||||
|   indeterminate={true} | ||||
| /> | ||||
| `; | ||||
| @ -0,0 +1,14 @@ | ||||
| import React from 'react'; | ||||
| 
 | ||||
| import ClientApplications from '../application-edit-component'; | ||||
| import renderer from 'react-test-renderer'; | ||||
| 
 | ||||
| jest.mock('react-mdl'); | ||||
| 
 | ||||
| test('renders correctly if no application', () => { | ||||
|     const tree = renderer.create( | ||||
|         <ClientApplications fetchApplication={jest.fn()} /> | ||||
|     ).toJSON(); | ||||
| 
 | ||||
|     expect(tree).toMatchSnapshot(); | ||||
| }); | ||||
							
								
								
									
										5
									
								
								frontend/src/component/archive/__tests__/.eslintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								frontend/src/component/archive/__tests__/.eslintrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| { | ||||
|     "env": { | ||||
|         "jest": true | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,114 @@ | ||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||
| 
 | ||||
| exports[`renders correctly with archived toggles 1`] = ` | ||||
| <react-mdl-Card | ||||
|   className="fullwidth" | ||||
|   shadow={0} | ||||
| > | ||||
|   <div | ||||
|     className="horisontalScroll" | ||||
|   > | ||||
|     <react-mdl-DataTable | ||||
|       className="fullwidth" | ||||
|       rows={ | ||||
|         Array [ | ||||
|           Object { | ||||
|             "createdAt": "2016-10-25T15:38:28.573Z", | ||||
|             "description": "Disables the confirm-functionality from API", | ||||
|             "enabled": false, | ||||
|             "name": "adin-pay-confirm-disabled", | ||||
|             "reviveName": "adin-pay-confirm-disabled", | ||||
|             "strategies": Array [ | ||||
|               Object { | ||||
|                 "name": "default", | ||||
|                 "parameters": Object {}, | ||||
|               }, | ||||
|             ], | ||||
|           }, | ||||
|           Object { | ||||
|             "createdAt": "2016-08-03T12:41:35.631Z", | ||||
|             "description": "Enables use of schibsted payment from order-payment-management", | ||||
|             "enabled": true, | ||||
|             "name": "adin-pay-platform-sch-payment", | ||||
|             "reviveName": "adin-pay-platform-sch-payment", | ||||
|             "strategies": Array [ | ||||
|               Object { | ||||
|                 "name": "default", | ||||
|                 "parameters": Object {}, | ||||
|               }, | ||||
|             ], | ||||
|           }, | ||||
|         ] | ||||
|       } | ||||
|       style={ | ||||
|         Object { | ||||
|           "border": 0, | ||||
|         } | ||||
|       } | ||||
|     > | ||||
|       <react-mdl-TableHeader | ||||
|         cellFormatter={[Function]} | ||||
|         name="reviveName" | ||||
|         style={ | ||||
|           Object { | ||||
|             "width": "25px", | ||||
|           } | ||||
|         } | ||||
|       > | ||||
|         Revive | ||||
|       </react-mdl-TableHeader> | ||||
|       <react-mdl-TableHeader | ||||
|         cellFormatter={[Function]} | ||||
|         name="enabled" | ||||
|         style={ | ||||
|           Object { | ||||
|             "width": "25px", | ||||
|           } | ||||
|         } | ||||
|       > | ||||
|         Enabled | ||||
|       </react-mdl-TableHeader> | ||||
|       <react-mdl-TableHeader | ||||
|         name="name" | ||||
|       > | ||||
|         Toggle name | ||||
|       </react-mdl-TableHeader> | ||||
|       <react-mdl-TableHeader | ||||
|         name="createdAt" | ||||
|         numeric={true} | ||||
|       > | ||||
|         Created | ||||
|       </react-mdl-TableHeader> | ||||
|     </react-mdl-DataTable> | ||||
|   </div> | ||||
| </react-mdl-Card> | ||||
| `; | ||||
| 
 | ||||
| exports[`renders correctly with no archived toggles 1`] = ` | ||||
| <react-mdl-Card | ||||
|   className="fullwidth" | ||||
|   shadow={0} | ||||
| > | ||||
|   <div | ||||
|     className="emptyState" | ||||
|   > | ||||
|     <react-mdl-Icon | ||||
|       className="mdl-color-text--grey-300" | ||||
|       name="archive" | ||||
|       style={ | ||||
|         Object { | ||||
|           "fontSize": "56px", | ||||
|         } | ||||
|       } | ||||
|     /> | ||||
|     <br /> | ||||
|     No archived feature toggles, go see  | ||||
|     <a | ||||
|       onClick={[Function]} | ||||
|       style={Object {}} | ||||
|     > | ||||
|       active toggles here | ||||
|     </a> | ||||
|   </div> | ||||
| </react-mdl-Card> | ||||
| `; | ||||
| @ -0,0 +1,40 @@ | ||||
| import React from 'react'; | ||||
| 
 | ||||
| import ArchiveList from '../archive-list-component'; | ||||
| import renderer from 'react-test-renderer'; | ||||
| 
 | ||||
| jest.mock('react-mdl'); | ||||
| 
 | ||||
| const archive = [ | ||||
|     { | ||||
|         name: 'adin-pay-confirm-disabled', | ||||
|         description: 'Disables the confirm-functionality from API', | ||||
|         enabled: false, | ||||
|         strategies: [{ name: 'default', parameters: {} }], | ||||
|         createdAt: '2016-10-25T15:38:28.573Z', | ||||
|         reviveName: 'adin-pay-confirm-disabled', | ||||
|     }, { | ||||
|         name: 'adin-pay-platform-sch-payment', | ||||
|         description: 'Enables use of schibsted payment from order-payment-management', | ||||
|         enabled: true, | ||||
|         strategies: [{ name: 'default', parameters: {} }], | ||||
|         createdAt: '2016-08-03T12:41:35.631Z', | ||||
|         reviveName: 'adin-pay-platform-sch-payment', | ||||
|     }, | ||||
| ]; | ||||
| 
 | ||||
| test('renders correctly with no archived toggles', () => { | ||||
|     const tree = renderer.create( | ||||
|         <ArchiveList fetchArchive={jest.fn()} archive={[]} /> | ||||
|     ).toJSON(); | ||||
| 
 | ||||
|     expect(tree).toMatchSnapshot(); | ||||
| }); | ||||
| 
 | ||||
| test('renders correctly with archived toggles', () => { | ||||
|     const tree = renderer.create( | ||||
|         <ArchiveList fetchArchive={jest.fn()} archive={archive} /> | ||||
|     ).toJSON(); | ||||
| 
 | ||||
|     expect(tree).toMatchSnapshot(); | ||||
| }); | ||||
| @ -0,0 +1,5 @@ | ||||
| { | ||||
|     "env": { | ||||
|         "jest": true | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,39 @@ | ||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||
| 
 | ||||
| exports[`renders correctly with no clientInstances 1`] = ` | ||||
| <react-mdl-DataTable | ||||
|   rows={Array []} | ||||
|   selectable={false} | ||||
|   style={ | ||||
|     Object { | ||||
|       "width": "100%", | ||||
|     } | ||||
|   } | ||||
| > | ||||
|   <react-mdl-TableHeader | ||||
|     name="instanceId" | ||||
|   > | ||||
|     Instance ID | ||||
|   </react-mdl-TableHeader> | ||||
|   <react-mdl-TableHeader | ||||
|     name="appName" | ||||
|   > | ||||
|     Application name | ||||
|   </react-mdl-TableHeader> | ||||
|   <react-mdl-TableHeader | ||||
|     name="clientIp" | ||||
|   > | ||||
|     IP | ||||
|   </react-mdl-TableHeader> | ||||
|   <react-mdl-TableHeader | ||||
|     name="createdAt" | ||||
|   > | ||||
|     Created | ||||
|   </react-mdl-TableHeader> | ||||
|   <react-mdl-TableHeader | ||||
|     name="lastSeen" | ||||
|   > | ||||
|     Last Seen | ||||
|   </react-mdl-TableHeader> | ||||
| </react-mdl-DataTable> | ||||
| `; | ||||
| @ -0,0 +1,14 @@ | ||||
| import React from 'react'; | ||||
| 
 | ||||
| import ClientStrategies from '../client-instance-component'; | ||||
| import renderer from 'react-test-renderer'; | ||||
| 
 | ||||
| jest.mock('react-mdl'); | ||||
| 
 | ||||
| test('renders correctly with no clientInstances', () => { | ||||
|     const tree = renderer.create( | ||||
|         <ClientStrategies fetchClientInstances={jest.fn()} clientInstances={[]} /> | ||||
|     ).toJSON(); | ||||
| 
 | ||||
|     expect(tree).toMatchSnapshot(); | ||||
| }); | ||||
							
								
								
									
										5
									
								
								frontend/src/component/common/__tests__/.eslintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								frontend/src/component/common/__tests__/.eslintrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| { | ||||
|     "env": { | ||||
|         "jest": true | ||||
|     } | ||||
| } | ||||
							
								
								
									
										7
									
								
								frontend/src/component/common/__tests__/util-test.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								frontend/src/component/common/__tests__/util-test.jsx
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| import { formatFullDateTime } from '../util'; | ||||
| 
 | ||||
| test('formats dates correctly', () => { | ||||
|     expect(formatFullDateTime(1487861809466)).toEqual('02/23/2017, 2:56:49 PM'); | ||||
|     expect(formatFullDateTime(1487232809466)).toEqual('02/16/2017, 8:13:29 AM'); | ||||
|     expect(formatFullDateTime(1477232809466)).toEqual('10/23/2016, 2:26:49 PM'); | ||||
| }); | ||||
| @ -140,4 +140,4 @@ export function calc (value, total, decimal) { | ||||
|     }); | ||||
| 
 | ||||
|     return (value / total * 100).toFixed(decimal); | ||||
| }; | ||||
| } | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user