Route params test

http://angularjs.org/

HTML

<script src="https://raw.github.com/pivotal/jasmine/master/lib/jasmine-core/jasmine.js"></script>
<script src="https://raw.github.com/pivotal/jasmine/master/lib/jasmine-core/jasmine-html.js"></script>
<script src="http://code.angularjs.org/1.0.1/angular-1.0.1.js"></script>
<script src="http://code.angularjs.org/1.0.1/angular-mocks-1.0.1.js"></script>
<div ng-controller="lame">{{result}}</div>

CSS

body {
    background-color: #eeeeee;
    padding: 0;
    margin: 5px;
    overflow-y: scroll;
}
#TrivialReporter {
    padding: 8px 13px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow-y: scroll;
    background-color: white;
    font-family:"Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
    /*.resultMessage {*/
    /*white-space: pre;*/
    /*}*/
}
#TrivialReporter a:visited, #TrivialReporter a {
    color: #303;
}
#TrivialReporter a:hover, #TrivialReporter a:active {
    color: blue;
}
#TrivialReporter .run_spec {
    float: right;
    padding-right: 5px;
    font-size: .8em;
    text-decoration: none;
}
#TrivialReporter .banner {
    color: #303;
    background-color: #fef;
    padding: 5px;
}
#TrivialReporter .logo {
    float: left;
    font-size: 1.1em;
    padding-left: 5px;
}
#TrivialReporter .logo .version {
    font-size: .6em;
    padding-left: 1em;
}
#TrivialReporter .runner.running {
    background-color: yellow;
}
#TrivialReporter .options {
    text-align: right;
    font-size: .8em;
}
#TrivialReporter .suite {
    border: 1px outset gray;
    margin: 5px 0;
    padding-left: 1em;
}
#TrivialReporter .suite .suite {
    margin: 5px;
}
#TrivialReporter .suite.passed {
    background-color: #dfd;
}
#TrivialReporter .suite.failed {
    background-color: #fdd;
}
#TrivialReporter .spec {
    margin: 5px;
    padding-left: 1em;
    clear: both;
}
#TrivialReporter .spec.failed, #TrivialReporter .spec.passed, #TrivialReporter .spec.skipped {
    padding-bottom: 5px;
    border: 1px solid gray;
}
#TrivialReporter .spec.failed {
    background-color: #fbb;
    border-color: red;
}
#TrivialReporter .spec.passed {
    background-color: #bfb;
    border-color: green;
}
#TrivialReporter .spec.skipped {
    background-color: #bbb;
}
#TrivialReporter .messages {
    border-left: 1px dashed gray;
    padding-left: 1em;
    padding-right: 1em;
}
#TrivialReporter .passed {
    background-color:...

JavaScript

angular.module('MyApp', []).controller('MyAppCtrl', function ($scope, $routeParams) {

    $scope.id = $routeParams.discussionId || $routeParams.articleId || "new";
});

//Test code
describe('Testing a controller', function () {

    var scope, ctrl, routeParams;

    //you need to indicate your module in a test
    beforeEach(module('MyApp'));
    beforeEach(inject(function ($rootScope) {
        scope = $rootScope.$new();
        routeParams = {};
    }));

    it('should take articleId as id if specified', inject(function ($controller) {
        routeParams.articleId = 5;
        ctrl = $controller('MyAppCtrl', {
            $scope: scope,
            $routeParams: routeParams
        });
        expect(scope.id).toEqual(5);
    }));

    it('should default id to new if no route params specified', inject(function ($controller) {
        ctrl = $controller('MyAppCtrl', {
            $scope: scope,
            $routeParams: routeParams
        });
        expect(scope.id).toEqual('new');
    }));

});


// KICK OFF JASMINE
var jasmineEnv = jasmine.getEnv();
var trivialReporter = new jasmine.TrivialReporter();

jasmineEnv.addReporter(trivialReporter);

jasmineEnv.specFilter = function (spec) {
    return trivialReporter.specFilter(spec);
};

jasmineEnv.execute();