| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  | /* | 
					
						
							|  |  |  |  * Minio Cloud Storage (C) 2018 Minio, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import configureStore from "redux-mock-store" | 
					
						
							|  |  |  | import thunk from "redux-thunk" | 
					
						
							| 
									
										
										
										
											2018-02-13 14:30:02 +08:00
										 |  |  | import * as actionsBuckets from "../actions" | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  | import * as objectActions from "../../objects/actions" | 
					
						
							| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | jest.mock("../../web", () => ({ | 
					
						
							|  |  |  |   ListBuckets: jest.fn(() => { | 
					
						
							|  |  |  |     return Promise.resolve({ buckets: [{ name: "test1" }, { name: "test2" }] }) | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |   }), | 
					
						
							|  |  |  |   MakeBucket: jest.fn(() => { | 
					
						
							|  |  |  |     return Promise.resolve() | 
					
						
							| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  |   }) | 
					
						
							|  |  |  | })) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  | jest.mock("../../objects/actions", () => ({ | 
					
						
							|  |  |  |   selectPrefix: () => dispatch => {} | 
					
						
							|  |  |  | })) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  | const middlewares = [thunk] | 
					
						
							|  |  |  | const mockStore = configureStore(middlewares) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe("Buckets actions", () => { | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  |   it("creates buckets/SET_LIST and buckets/SET_CURRENT_BUCKET after fetching the buckets", () => { | 
					
						
							| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  |     const store = mockStore() | 
					
						
							|  |  |  |     const expectedActions = [ | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  |       { type: "buckets/SET_LIST", buckets: ["test1", "test2"] }, | 
					
						
							|  |  |  |       { type: "buckets/SET_CURRENT_BUCKET", bucket: "test1" } | 
					
						
							| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  |     ] | 
					
						
							|  |  |  |     return store.dispatch(actionsBuckets.fetchBuckets()).then(() => { | 
					
						
							|  |  |  |       const actions = store.getActions() | 
					
						
							|  |  |  |       expect(actions).toEqual(expectedActions) | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |   }) | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |   it("should update browser url and creates buckets/SET_CURRENT_BUCKET action when selectBucket is called", () => { | 
					
						
							| 
									
										
										
										
											2018-02-13 05:27:52 +08:00
										 |  |  |     const store = mockStore() | 
					
						
							|  |  |  |     const expectedActions = [ | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |       { type: "buckets/SET_CURRENT_BUCKET", bucket: "test1" } | 
					
						
							| 
									
										
										
										
											2018-02-13 05:27:52 +08:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |     store.dispatch(actionsBuckets.selectBucket("test1")) | 
					
						
							| 
									
										
										
										
											2018-02-13 05:27:52 +08:00
										 |  |  |     const actions = store.getActions() | 
					
						
							|  |  |  |     expect(actions).toEqual(expectedActions) | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |     expect(window.location.pathname).toBe("/test1") | 
					
						
							| 
									
										
										
										
											2018-02-13 05:27:52 +08:00
										 |  |  |   }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |   it("creates buckets/SHOW_MAKE_BUCKET_MODAL for showMakeBucketModal", () => { | 
					
						
							| 
									
										
										
										
											2018-02-13 05:27:52 +08:00
										 |  |  |     const store = mockStore() | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |     const expectedActions = [ | 
					
						
							|  |  |  |       { type: "buckets/SHOW_MAKE_BUCKET_MODAL", show: true } | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  |     store.dispatch(actionsBuckets.showMakeBucketModal()) | 
					
						
							| 
									
										
										
										
											2018-02-13 05:27:52 +08:00
										 |  |  |     const actions = store.getActions() | 
					
						
							|  |  |  |     expect(actions).toEqual(expectedActions) | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |   it("creates buckets/SHOW_MAKE_BUCKET_MODAL for hideMakeBucketModal", () => { | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  |     const store = mockStore() | 
					
						
							|  |  |  |     const expectedActions = [ | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |       { type: "buckets/SHOW_MAKE_BUCKET_MODAL", show: false } | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |     store.dispatch(actionsBuckets.hideMakeBucketModal()) | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  |     const actions = store.getActions() | 
					
						
							|  |  |  |     expect(actions).toEqual(expectedActions) | 
					
						
							| 
									
										
										
										
											2018-02-15 10:34:59 +08:00
										 |  |  |   }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it("creates buckets/ADD action", () => { | 
					
						
							|  |  |  |     const store = mockStore() | 
					
						
							|  |  |  |     const expectedActions = [{ type: "buckets/ADD", bucket: "test" }] | 
					
						
							|  |  |  |     store.dispatch(actionsBuckets.addBucket("test")) | 
					
						
							|  |  |  |     const actions = store.getActions() | 
					
						
							|  |  |  |     expect(actions).toEqual(expectedActions) | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it("creates buckets/ADD and buckets/SET_CURRENT_BUCKET after creating the bucket", () => { | 
					
						
							|  |  |  |     const store = mockStore() | 
					
						
							|  |  |  |     const expectedActions = [ | 
					
						
							|  |  |  |       { type: "buckets/ADD", bucket: "test1" }, | 
					
						
							|  |  |  |       { type: "buckets/SET_CURRENT_BUCKET", bucket: "test1" } | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  |     return store.dispatch(actionsBuckets.makeBucket("test1")).then(() => { | 
					
						
							|  |  |  |       const actions = store.getActions() | 
					
						
							|  |  |  |       expect(actions).toEqual(expectedActions) | 
					
						
							|  |  |  |     }) | 
					
						
							| 
									
										
										
										
											2018-02-10 10:34:14 +08:00
										 |  |  |   }) | 
					
						
							| 
									
										
										
										
											2018-02-01 11:53:11 +08:00
										 |  |  | }) |