Skip to content

Commit 61f3210

Browse files
feat(chapter-2): code examples for chapter 2
1 parent 09500b5 commit 61f3210

File tree

23 files changed

+290
-0
lines changed

23 files changed

+290
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var adminProjects = angular.module('admin-projects', []);
2+
3+
adminProjects.controller('ProjectsListCtrl', function($scope) {
4+
//controller's code go here
5+
});
6+
7+
adminProjects.controller('ProjectsEditCtrl', function($scope) {
8+
//controller's code go here
9+
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<html>
2+
<head>
3+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
4+
<script src="admin-projects.js"></script>
5+
</head>
6+
<body ng-app="admin-projects">
7+
</body>
8+
</html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
angular.module('admin-projects', []);
2+
3+
angular.module('admin-projects').controller('ProjectsListCtrl', function($scope) {
4+
//controller's code go here
5+
});
6+
7+
angular.module('admin-projects').controller('ProjectsEditCtrl', function($scope) {
8+
//controller's code go here
9+
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<html>
2+
<head>
3+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
4+
<script src="admin-projects.js"></script>
5+
</head>
6+
<body ng-app="admin-projects">
7+
</body>
8+
</html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
angular.module('admin-projects', [])
2+
3+
.controller('ProjectsListCtrl', function($scope) {
4+
//controller's code go here
5+
})
6+
7+
.controller('ProjectsEditCtrl', function($scope) {
8+
//controller's code go here
9+
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<html>
2+
<head>
3+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
4+
<script src="admin-projects.js"></script>
5+
</head>
6+
<body ng-app="admin-projects">
7+
</body>
8+
</html>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
angular.module('admin-projects', [], function() {
2+
//configuration logic goes here
3+
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<html>
2+
<head>
3+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
4+
<script src="admin-projects.js"></script>
5+
</head>
6+
<body ng-app="admin-projects">
7+
</body>
8+
</html>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
angular.module('admin-projects', [])
2+
.config(function() {
3+
//configuration block 1
4+
})
5+
.config(function() {
6+
//configuration block 2
7+
});
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<html>
2+
<head>
3+
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
4+
<script src="admin-projects.js"></script>
5+
</head>
6+
<body ng-app="admin-projects">
7+
</body>
8+
</html>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var Greeter = function () {
2+
this.say = function (name) {
3+
return "Hello, " + name + "!";
4+
};
5+
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
describe('hello World test', function () {
2+
3+
var greeter;
4+
beforeEach(function () {
5+
greeter = new Greeter();
6+
});
7+
8+
it('should say hello to the World', function () {
9+
expect(greeter.say('World')).toEqual('Hello, World!');
10+
});
11+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<link rel="stylesheet" href="../../lib/jasmine-1.3.0/jasmine.css">
6+
<script src="../../lib/jasmine-1.3.0/jasmine.js"></script>
7+
<script src="../../lib/jasmine-1.3.0/jasmine-html.js"></script>
8+
<script src="../../lib/angular/1.0.2/angular.js"></script>
9+
<script src="../../lib/angular/1.0.2/angular-mocks.js"></script>
10+
</head>
11+
<body>
12+
<script src="helloWorld.js"></script>
13+
<script src="helloWorld.spec.js"></script>
14+
<script>
15+
var jasmineEnv = jasmine.getEnv();
16+
jasmineEnv.addReporter(new jasmine.HtmlReporter());
17+
jasmineEnv.execute();
18+
</script>
19+
</body>
20+
</html>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
angular.module('archive', [])
2+
.factory('notificationsArchive', function () {
3+
4+
var archivedNotifications = [];
5+
return {
6+
archive:function (notification) {
7+
archivedNotifications.push(notification);
8+
},
9+
getArchived:function () {
10+
return archivedNotifications;
11+
}};
12+
});
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
describe('notifications archive tests', function () {
2+
3+
var notificationsArchive;
4+
beforeEach(module('archive'));
5+
beforeEach(inject(function (_notificationsArchive_) {
6+
notificationsArchive = _notificationsArchive_;
7+
}));
8+
9+
it('should give access to the archived items', function () {
10+
var notification = {msg: 'Old message.'};
11+
notificationsArchive.archive(notification);
12+
13+
expect(notificationsArchive.getArchived()).toContain(notification);
14+
});
15+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<link rel="stylesheet" href="../../lib/jasmine-1.3.0/jasmine.css">
6+
<script src="../../lib/jasmine-1.3.0/jasmine.js"></script>
7+
<script src="../../lib/jasmine-1.3.0/jasmine-html.js"></script>
8+
<script src="../../lib/angular/1.0.2/angular.js"></script>
9+
<script src="../../lib/angular/1.0.2/angular-mocks.js"></script>
10+
</head>
11+
<body>
12+
<script src="archive.js"></script>
13+
<script src="archive.spec.js"></script>
14+
<script>
15+
var jasmineEnv = jasmine.getEnv();
16+
jasmineEnv.addReporter(new jasmine.HtmlReporter());
17+
jasmineEnv.execute();
18+
</script>
19+
</body>
20+
</html>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
angular.module('admin-projects', [])
2+
.controller('ProjectsEditCtrl', function($scope, project) {
3+
4+
this.sth = 'else';
5+
6+
$scope.project = project;
7+
8+
$scope.removeTeamMember = function(teamMember) {
9+
var idx = $scope.project.teamMembers.indexOf(teamMember);
10+
if(idx >= 0) {
11+
$scope.project.teamMembers.splice(idx, 1);
12+
}
13+
};
14+
15+
//other methods of the controller
16+
});
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
describe('ProjectsEditCtrl tests', function () {
2+
3+
var $scope;
4+
beforeEach(module('admin-projects'));
5+
beforeEach(inject(function ($rootScope) {
6+
$scope = $rootScope.$new();
7+
}));
8+
9+
it('should remove an existing team member', inject(function ($controller) {
10+
11+
var teamMember = {};
12+
13+
var ctrl = $controller('ProjectsEditCtrl', {
14+
$scope: $scope,
15+
project: {
16+
teamMembers: [teamMember]
17+
}
18+
});
19+
20+
//verify the initial setup
21+
expect($scope.project.teamMembers).toEqual([teamMember]);
22+
23+
//execute and verify results
24+
$scope.removeTeamMember(teamMember);
25+
expect($scope.project.teamMembers).toEqual([]);
26+
}));
27+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<link rel="stylesheet" href="../../lib/jasmine-1.3.0/jasmine.css">
6+
<script src="../../lib/jasmine-1.3.0/jasmine.js"></script>
7+
<script src="../../lib/jasmine-1.3.0/jasmine-html.js"></script>
8+
<script src="../../lib/angular/1.0.2/angular.js"></script>
9+
<script src="../../lib/angular/1.0.2/angular-mocks.js"></script>
10+
</head>
11+
<body>
12+
<script src="admin-projects.js"></script>
13+
<script src="admin-projects.spec.js"></script>
14+
<script>
15+
var jasmineEnv = jasmine.getEnv();
16+
jasmineEnv.addReporter(new jasmine.HtmlReporter());
17+
jasmineEnv.execute();
18+
</script>
19+
</body>
20+
</html>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<link rel="stylesheet" href="../../lib/jasmine-1.3.0/jasmine.css">
6+
<script src="../../lib/jasmine-1.3.0/jasmine.js"></script>
7+
<script src="../../lib/jasmine-1.3.0/jasmine-html.js"></script>
8+
<script src="../../lib/angular/1.0.2/angular.js"></script>
9+
<script src="../../lib/angular/1.0.2/angular-mocks.js"></script>
10+
</head>
11+
<body>
12+
<script src="timeout.js"></script>
13+
<script src="timeout.spec.js"></script>
14+
<script>
15+
var jasmineEnv = jasmine.getEnv();
16+
jasmineEnv.addReporter(new jasmine.HtmlReporter());
17+
jasmineEnv.execute();
18+
</script>
19+
</body>
20+
</html>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
angular.module('async', [])
2+
.factory('asyncGreeter', function ($timeout, $log) {
3+
return {
4+
say:function (name, timeout) {
5+
$timeout(function(){
6+
$log.info("Hello, " + name + "!");
7+
});
8+
}
9+
};
10+
});
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
describe('Async Greeter test', function () {
2+
3+
var asyncGreeter, $timeout, $log;
4+
beforeEach(module('async'));
5+
beforeEach(inject(function (_asyncGreeter_, _$timeout_, _$log_) {
6+
asyncGreeter = _asyncGreeter_;
7+
$timeout = _$timeout_;
8+
$log = _$log_;
9+
}));
10+
11+
it('should greet the async World', function () {
12+
asyncGreeter.say('World', 9999999999999999999);
13+
//
14+
$timeout.flush();
15+
expect($log.info.logs).toContain(['Hello, World!']);
16+
});
17+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
describe('tips & tricks', function () {
2+
3+
xdescribe('none of the tests here will execute', function () {
4+
5+
it('should not execute - spec level', function () {
6+
});
7+
8+
xit('not execute - test level', function () {
9+
});
10+
});
11+
12+
describe('suite with one test selected', function () {
13+
14+
iit('should execute only this test', function () {
15+
});
16+
17+
it('should execute this one after removing iit', function () {
18+
});
19+
});
20+
});

0 commit comments

Comments
 (0)