/* global describe: true, test:true, expect:true */
import { fujifilmCategories as fujifilmCategoriesReducer, initialState } from '~/reducers/fujifilmCategories';
import {
	GET_FUJIFILM_CHILD_CATEGORY_PROPDUCTS_SUCCESS,
} from '~/store/actionTypes';

describe('fujifilmCategories reducer', () => {
	test('CASE 1: should return initial state', () => {
		expect(fujifilmCategoriesReducer(undefined, { type: 'Default' }))
			.toEqual(initialState);
	});
	test('CASE 2: should return correct state when type is GET_FUJIFILM_CHILD_CATEGORY_PROPDUCTS_SUCCESS', () => {
		const categoryId = 1;
		const products = [{
			ProductCode: '1',
		}, {
			ProductCode: '2',
		}];
		const serviceType = 'MailOrder';
		const childCategoryProducts = {
			1: [{
				ProductCode: '1',
			}, {
				ProductCode: '2',
			}],
		};

		const stateResult = fujifilmCategoriesReducer(initialState, {
			type: GET_FUJIFILM_CHILD_CATEGORY_PROPDUCTS_SUCCESS,
			payload: { categoryId, products, serviceType },
		});

		expect(stateResult).toHaveProperty('childCategoryProducts');
		expect(stateResult.childCategoryProducts).toEqual(childCategoryProducts);
		expect(stateResult).toHaveProperty('meta');
	});
});
