update-browser.test.js 3.22 KB
/*
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2016 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, expect, it, beforeEach, afterEach */
define([
    'screens/player/firmware/update/impl/update-browser',
    'screens/player/shared/test-helper/stub-service-interface',
    'screens/player/shared/test-helper/mock-store-service',
    'screens/player/firmware/core/firmware/firmware',
    'screens/player/shared/serviceadmin'
], function(UpdateBrowser, stubServiceInterface, mockStoreService, Firmware, ServiceAdmin) {
    'use strict';

    describe('screens/player/firmware/update/impl/update-browser', function() {

        var updateService;
        var firmwareStub;

        beforeEach(function() {

            firmwareStub = stubServiceInterface(ServiceAdmin, Firmware);
            updateService = new UpdateBrowser();
        });

        afterEach(function() {
            firmwareStub.restore();
        });

        describe('# API', function() {

            it('activate() and deactivate()', function(done) {
                updateService.activate().then(function() {
                    updateService.deactivate().then(function() {
                        done();
                    });
                });
            });

            describe('start', function() {
                it('returns a Promise and resolves', function() {
                    return updateService.start();
                });
            });

            describe('checkForUpdates', function() {
                it('returns a Promise and resolves with ok-new', function() {
                    return updateService.checkForUpdates().then(function(returnValue) {
                        expect(returnValue).to.equal('ok-new');
                    });
                });
            });

            describe('download', function() {
                it('returns a Promise and resolves', function() {
                    return updateService.download();
                });
            });


            describe('install', function() {
                it('calls reboot Service', function() {
                    updateService.install();

                    expect(firmwareStub.api.reboot).to.have.been.called;
                });
            });


            describe('hasStepByStepSupport', function() {
                it('returns false', function() {
                    expect(updateService.hasStepByStepSupport()).to.be.false;
                });
            });

            it('nextStep() is available and does not throw', function() {
                expect(function() {
                    updateService.nextStep();
                }).to.not.throw;
            });
        });

    });
});