Directive with isolate scope and accessor

HTML

<div class="form-group">
    <accordion>
        <accordion-group is-open="status.open">
            <accordion-heading>
                Options
                <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i>
            </accordion-heading>
            <div class="form-group">
                <ul class="list-group" ng-sortable="{animation:150}">
                    <li class="list-group-item" ng-repeat="option in element.options">
                        <button ng-click="removeSelectOption({index: $index})" class="btn btn-xs btn-hover btn-default red pull-right">
                            <span class="glyphicon glyphicon-remove-sign"></span>
                        </button>
                        <div class="form-group">
                            <label>Text</label>
                            <input ng-model=option.text class="form-control" type="text">
                            <label>Value</label>
                            <input ng-model=option.value class="form-control" type="text">
                            <label>Disabled</label>
                            <input ng-model=option.disabled type="checkbox">
                            <br/>
                            <label>Default Selection</label>
                            <input type="radio" ng-model="element.defaultValue" ng-value="option.value">
                        </div>
                    </li>
                </ul>
                <button ng-click="addSelectOption()" class="btn btn-default pull-right">
                    Add Option
                    <span class="green glyphicon glyphicon-plus-sign"></span>
                </button>
            </div>
        </accordion-group>
    </accordion>
</div>

JavaScript

describe('Controller: ElementsController', function () {
    'use strict';

    var elementsController, scope, events, flow;

    var element = {
        name: 'flowName',
        uri: '/domain/flows/flowName'
    };

    beforeEach(function() {
        module('DavidBowUI');
        inject(function($rootScope, $controller, _events_, _flow_) {
            events = _events_;
            scope = $rootScope.$new();
            elementsController = $controller('ElementsController', {$scope: scope});
            flow = _flow_;

            spyOn(flow, 'fetchElement');
            spyOn(flow, 'updateElement');
        });
    });

    describe('Signals', function() {
        it('responds to FlowLoaded Signal with element not in list', function() {
            var flowData = {
                elements: [
                    {
                        uri: 'flowURI-1'
                    }
                ],
                forms: [
                    {
                        uri: 'formURI-1'
                    }
                ]
            };

            var selectedItem = { 
                uri: 'flowURI-2'
            };

            scope.elementList.selectedItem = selectedItem;

            expect(scope.elementList.selectedItem).toBe(selectedItem);
            expect(scope.elementList.items).toBe(null);
            expect(scope.elementEditor.availableForms).toBe(null);

            scope.$broadcast(events.FlowLoaded, flowData);

            expect(scope.elementEditor.availableForms).toBe(flowData.forms);
            expect(scope.elementList.items).toBe(flowData.elements);
            expect(flow.fetchElement).toHaveBeenCalled();
            expect(flow.fetchElement).toHaveBeenCalledWith(flowData.elements[0]);
            expect(scope.elementList.selectedItem).toBe(flowData.elements[0]);
        });

        it('responds to FlowLoaded Signal with element in list', function() {
            var flowData = {
                elements: [
                    {
        ...