deviceinfo-reducer.test.js 2.5 KB
/*
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2017 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

/* eslint max-nested-callbacks: [2, 10]*/
/* eslint no-new: 0 */

/* globals describe */
define([
    'screens/player/firmware/deviceinfo/deviceinfo',
    'screens/player/firmware/deviceinfo/impl/deviceinfo-reducer',
    'screens/player/shared/test-helper/reducer'
], function(DeviceInfo, deviceInfoReducer, ReducerHelper) {
    'use strict';

    describe('deviceInfoReducer', function() {
        var helper = new ReducerHelper(deviceInfoReducer);

        helper.runDefaultTests([
            {type: DeviceInfo.ACTIONS.UPDATE, payload: {test: 'bar'}}
        ], {});

        helper.runCompareStateTest('default state',
            {},
            null,
            {
                info: 'n/a',
                model: 'n/a',
                os: 'n/a',
                uuid: 'n/a',
                osVersion: 'n/a',
                webView: 'n/a'
            }
        );

        helper.runCompareStateTest('must modify the state on ACTIONS.UPDATE',
            {type: DeviceInfo.ACTIONS.UPDATE, payload: {
                info: 'info',
                model: 'model',
                os: 'os',
                uuid: 'uuid',
                osVersion: 'os-version',
                webView: 'webview'
            }},
            null,
            {
                info: 'info',
                model: 'model',
                os: 'os',
                uuid: 'uuid',
                osVersion: 'os-version',
                webView: 'webview'
            }
        );

        helper.runCompareStateTest('must modify a single prop of the state on ACTIONS.UPDATE but keep the defaults',
            {type: DeviceInfo.ACTIONS.UPDATE, payload: {
                info: 'info'
            }},
            null,
            {
                info: 'info',
                model: 'n/a',
                os: 'n/a',
                uuid: 'n/a',
                osVersion: 'n/a',
                webView: 'n/a'
            }
        );

    });
});