Skip to content
This repository was archived by the owner on Dec 18, 2024. It is now read-only.

Commit 3ade702

Browse files
committed
feat(news): show logged in user related data
Show user related data for the comment box in the news view module. --- src/view-models/news/view.js | 9 ++++++++- src/views/news/view.html | 5 ++--- test/unit/fixtures/AuthServiceStub.js | 17 +++++++++++++++++ test/unit/modules/news.spec.js | 9 ++++++++- 4 files changed, 35 insertions(+), 5 deletions(-)
1 parent 45c0d75 commit 3ade702

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

src/view-models/news/view.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,21 @@ export class View {
1010
}
1111

1212
activate(params, routeConfig) {
13-
return this.newsService.get(params.id)
13+
let user = this.authService.getMe()
14+
.then(user => {
15+
this.user = user;
16+
});
17+
18+
let news = this.newsService.get(params.id)
1419
.then(news => {
1520
this.news = news;
1621
routeConfig.navModel.setTitle(news.title);
1722
})
1823
.catch(() => {
1924
this.news = null;
2025
});
26+
27+
return Promise.all([user, news]);
2128
}
2229

2330
get isAuthenticated() {

src/views/news/view.html

+2-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@ <h4><a href="#/news/view/${news.id}">${news.title}</a></h4>
2323
</div>
2424
<div class="card-footer" if.bind="isAuthenticated">
2525
<div class="news-card-comment" if.bind="isAuthenticated">
26-
<!-- Todo: add logged in user data -->
27-
<a href="#/profiles/view/${news.user_id}" class="pull-left">
28-
<img alt="${news.user.username}" src="http://lr.local/img/avatar/${news.user.avatar}">
26+
<a href="#/profiles/view/${user.user_id}" class="pull-left">
27+
<img alt="${user.username}" src="http://lr.local/img/avatar/${user.avatar}">
2928
</a>
3029
<div class="media-body">
3130
<textarea class="form-control" placeholder="Write comment..."></textarea>

test/unit/fixtures/AuthServiceStub.js

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
export class AuthServiceStub {
2+
requestDummy;
3+
reject = false;
4+
5+
getMe(resource, options = {}) {
6+
this.resource = resource;
7+
this.options = options;
8+
9+
return new Promise((resolve, reject) => {
10+
if (this.reject == false) {
11+
resolve(this.requestDummy);
12+
} else {
13+
reject();
14+
}
15+
});
16+
}
17+
}

test/unit/modules/news.spec.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {Index} from '../../../src/view-models/news/index';
22
import {View} from '../../../src/view-models/news/view';
33

4+
import {AuthServiceStub} from '../fixtures/AuthServiceStub';
45
import {NewsServiceStub} from '../fixtures/NewsServiceStub';
56
import {NavModelStub} from '../fixtures/NavModelStub';
67

@@ -50,20 +51,26 @@ describe('the News Index module', () => {
5051

5152
describe('the News View module', () => {
5253
var newsService;
54+
var authService;
5355
var sut;
5456

5557
var itemStubs = [1];
5658
var itemFake = [2];
5759

5860
beforeEach(() => {
61+
authService = new AuthServiceStub();
5962
newsService = new NewsServiceStub();
60-
sut = new View(newsService);
63+
sut = new View(newsService, authService);
6164
});
6265

6366
it('contains a news service property', () => {
6467
expect(sut.newsService).toBeDefined();
6568
});
6669

70+
it('contains an auth service property', () => {
71+
expect(sut.authService).toBeDefined();
72+
});
73+
6774
it('sets fetch response to selected news', done => {
6875
newsService.itemStub = itemStubs;
6976
let navModelStub = new NavModelStub();

0 commit comments

Comments
 (0)