Changes to user-prefs to add better tests
Change-Id: I7b09e3d02cc7e4fecb7d156ff2bd66ee989c4031
diff --git a/views/ngXosLib/xosHelpers/spec/services/helpers/user-prefs.test.js b/views/ngXosLib/xosHelpers/spec/services/helpers/user-prefs.test.js
index 7a00cc7..464184b 100644
--- a/views/ngXosLib/xosHelpers/spec/services/helpers/user-prefs.test.js
+++ b/views/ngXosLib/xosHelpers/spec/services/helpers/user-prefs.test.js
@@ -48,8 +48,6 @@
expect(service.setSynchronizerNotificationStatus).toBeDefined();
expect(service.setUserDetailsCookie).toBeDefined();
expect(service.getUserDetailsCookie).toBeDefined();
- expect(service.setDataUser).toBeDefined()
-
});
describe('the getAll method', () => {
@@ -94,15 +92,6 @@
});
});
- describe('the getUserDetailsCookie method', () => {
- it('should return current user id', (done) => {
- service.getUserDetailsCookie().$promise.then((res) => {
- expect(res.userId).toEqual(syncNotification.userData.userId);
- done();
- });
- rootScope.$apply();
- });
- });
describe('the setSynchronizerNotificationStatus', () => {
it('should throw an error if called without synchronizer name', () => {
@@ -128,32 +117,60 @@
});
});
});
+
describe('the userdetails status', () => {
- let syncNotification;
- beforeEach(() => {
- syncNotification = {
- synchronizers: {
- notification: {
- first: true,
- second: false
- }
- }
- }
- cookies.xosUserPrefs = JSON.stringify(syncNotification);
- });
+ let userdata, meMock;
const userData = {
- userId: 1
+ current_user_id: 2
};
beforeEach(inject(($q,Me) => {
+ userdata = {
+ userData: {
+ current_user_id:1
+ }
+ }
+ cookies.xosUserPrefs = JSON.stringify(userdata);
deffered= $q.defer();
- spyOn(Me, 'get').and.callFake(function(){
- return {$promise: deffered.promise};
+ meMock = Me;
+ spyOn(meMock, 'get').and.callFake(function(){
+ return deffered.promise;
});
}));
- describe('the getUserDetailsCookie method', () => {
- it('should return current user id', (done) => {
+ describe('Get user data method' , ()=>{
+ it('it should return the stored data', (done) => {
+ service.getUserDetailsCookie().$promise.then((data) => {
+ expect(data).toEqual(userdata.userData);
+ done();
+ });
+ rootScope.$apply();
+ });
+
+ it('Should call the Api to return the data', (done) => {
+ cookies.xosUserPrefs = JSON.stringify();
service.getUserDetailsCookie().$promise.then((res) => {
expect(res.userId).toEqual(userData.userId);
+ expect(meMock.get).toHaveBeenCalled();
+ done();
+ });
+ deffered.resolve(userData);
+ rootScope.$apply();
+ });
+
+ });
+ describe('Set user data method' , ()=>{
+ it('it should save the provided data' , (done) => {
+ service.setUserDetailsCookie(userData).$promise.then(data => {
+ expect(data).toEqual(userData);
+ expect(cookieMock.put).toHaveBeenCalledWith('xosUserPrefs', '{"userData":{"current_user_id":2}}');
+ done();
+ });
+ rootScope.$apply();
+ });
+ it('Should call the Api to save the data',(done)=>{
+ service.setUserDetailsCookie().$promise.then(data => {
+ expect(meMock.get).toHaveBeenCalled();
+ expect(data).toEqual(userData);
+ expect(cookieMock.put).toHaveBeenCalledWith('xosUserPrefs', '{"userData":{"current_user_id":2}}');
done();
});
deffered.resolve(userData);
diff --git a/views/ngXosLib/xosHelpers/src/services/helpers/user-prefs.service.js b/views/ngXosLib/xosHelpers/src/services/helpers/user-prefs.service.js
index bb8a810..5e59c7c 100644
--- a/views/ngXosLib/xosHelpers/src/services/helpers/user-prefs.service.js
+++ b/views/ngXosLib/xosHelpers/src/services/helpers/user-prefs.service.js
@@ -84,7 +84,7 @@
var defer = $q.defer();
let localPref = this.getAll();
if(!localPref.userData){
- this.setUserDetailsCookie(localPref).$promise.then((data)=>{
+ this.setUserDetailsCookie().$promise.then((data)=>{
defer.resolve(data);
});
}
@@ -96,21 +96,6 @@
/**
* @ngdoc method
- * @name xos.helpers.XosUserPrefs#setDataUser
- * @methodOf xos.helpers.XosUserPrefs
- * @description
- * Return all the user details from the endpoint (api/utility/me)
- * @returns {object} The user details
- **/
-
- this.setDataUser = ()=>{
- //var deff = $q.defer();
- return Me.get().$promise;
-
- };
-
- /**
- * @ngdoc method
* @name xos.helpers.XosUserPrefs#setUserDetailsCookie
* @methodOf xos.helpers.XosUserPrefs
* @description
@@ -118,20 +103,25 @@
* @param {object} details stored in cookie
* @param {objects} returns the user details as a promise
**/
- this.setUserDetailsCookie = (localPref = localPref)=> {
+ this.setUserDetailsCookie = (userData = null)=> {
var defer = $q.defer();
- this.setDataUser().then((user)=>{
- this.model = user;
- defer.resolve(this.model);
- }).then(() => {
- localPref.userData = this.model.data;
- this.setAll(localPref);
- })
- .catch ((e) => {
- defer.reject(e);
- throw new Error(e);
- });
+ let cookies = this.getAll();
+ if (!userData){
+ Me.get().then((user)=> {
+ cookies.userData = user;
+ this.setAll(cookies);
+ defer.resolve(user);
+ })
+ .catch ((e) => {
+ defer.reject(e);
+ });
+ }
+ else {
+ cookies.userData = userData;
+ this.setAll(cookies);
+ defer.resolve(userData);
+ }
return {$promise: defer.promise};
}