Skip to content
This repository was archived by the owner on Jun 27, 2019. It is now read-only.

Commit 5992bbb

Browse files
Merge pull request #83 from Human-Connection/usersettings_feature
Create usersettings feature
2 parents 4fe0986 + 483196e commit 5992bbb

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

features/api/usersettings.feature

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Feature: Save current newsfeed filters to usersettings
88
| email | password | isVerified |
99
| user@example.com | 1234 | true |
1010

11-
Scenario: Save user's language
11+
Scenario: Save your language
1212
Given you are authenticated
1313
When you create your user settings via POST request to "/usersettings" with:
1414
"""
@@ -17,3 +17,21 @@ Feature: Save current newsfeed filters to usersettings
1717
}
1818
"""
1919
Then your language "de" is stored in your user settings
20+
21+
Scenario: Save your filter settings
22+
Given you are authenticated
23+
When you create your user settings via POST request to "/usersettings" with:
24+
"""
25+
{
26+
"contentLanguages" : [ "en" ],
27+
"uiLanguage" : "en",
28+
"filter": {
29+
"categoryIds": [
30+
"5b310ab8b801653c1eb6c426",
31+
"5b310ab8b801653c1eb6c427",
32+
"5b310ab8b801653c1eb6c428"
33+
]
34+
}
35+
}
36+
"""
37+
Then these category ids are stored in your user settings

features/step_definitions/steps.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,18 @@ Then('a new post is created', function () {
7979
});
8080

8181

82+
Then('these category ids are stored in your user settings', function () {
83+
return this.app.service('usersettings').find({userId: currentUser._id.toString()}).then((settings) => {
84+
expect(settings.total).to.eq(1);
85+
let usersettings = settings.data[0];
86+
expect(usersettings.uiLanguage).to.eq('en');
87+
expect(usersettings.filter.categoryIds).to.be.an('array')
88+
.that.does.include('5b310ab8b801653c1eb6c426')
89+
.that.does.include('5b310ab8b801653c1eb6c427')
90+
.that.does.include('5b310ab8b801653c1eb6c428');
91+
});
92+
});
93+
8294
Then('your language {string} is stored in your user settings', function (lang) {
8395
return this.app.service('usersettings').find({userId: currentUser._id.toString()}).then((settings) => {
8496
expect(settings.total).to.eq(1);

server/models/usersettings.model.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ module.exports = function (app) {
99
userId: {type: String, required: true, unique: true},
1010
uiLanguage: {type: String, required: true},
1111
contentLanguages: {type: Array, default: []},
12+
filter: {
13+
categoryIds: { type: Array, index: true },
14+
emotions: { type: Array, index: true }
15+
},
1216
hideUsersWithoutTermsOfUseSigniture: {type: Boolean},
1317
updatedAt: { type: Date, default: Date.now }
1418
});

0 commit comments

Comments
 (0)