Skip to content

Commit

Permalink
Merge pull request #1320 from eciis/dev
Browse files Browse the repository at this point in the history
Actualize branch responsive
  • Loading branch information
Luiz-FS authored Nov 20, 2018
2 parents 70a0d3b + c18ed6d commit dc517b4
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 42 deletions.
13 changes: 12 additions & 1 deletion ecis
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,18 @@ case "$1" in
set_support_url local $SUPPORT_LOCAL
set_frontend_url local $FRONTEND_LOCAL

dev_appserver.py $APP_YAML $FRONTEND_YAML $BACKEND_YAML $SUPPORT_YAML $WORKER_YAML -A development-cis $2
if [[ -n $2 ]] && [ $2 = "--enable_datastore_emulator" ] ; then
gcloud beta emulators datastore start --host-port=0.0.0.0:8586 &
emulator=True
other_parameter=$3
else
other_parameter=$2
emulator=False
fi

$(gcloud beta emulators datastore env-init)
dev_appserver.py $APP_YAML $FRONTEND_YAML $BACKEND_YAML $SUPPORT_YAML $WORKER_YAML -A development-cis --support_datastore_emulator=$emulator $other_parameter
$(gcloud beta emulators datastore env-unset)
;;

test)
Expand Down
5 changes: 3 additions & 2 deletions frontend/auth/authService.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,9 @@
if (user.emailVerified) {
return user.getIdToken(true).then(function(idToken) {
return service.setupUser(idToken, user.emailVerified).then(function success(userInfo) {
PushNotificationService.requestNotificationPermission(service.getCurrentUser());
return userInfo;
return PushNotificationService.requestNotificationPermission(service.getCurrentUser()).finally(() => {
return userInfo;
});
});
});
} else {
Expand Down
12 changes: 7 additions & 5 deletions frontend/notification/pushNotificationService.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
const app = angular.module('app');

app.service('PushNotificationService', function PushNotificationService($firebaseArray,
$firebaseObject, MessageService) {
$firebaseObject, $q) {
/**
* Service responsible for send request permission
* to enable notifications to the user and for deal
Expand Down Expand Up @@ -66,14 +66,16 @@
service.currentUser = user;
const isOnMobile = service._isMobile.any();
if (!service._hasNotificationPermission() && isOnMobile) {
messaging.requestPermission().then(() => {
messaging.getToken().then(token => {
return messaging.requestPermission().then(() => {
return messaging.getToken().then(token => {
service._saveToken(token);
}, () => {
MessageService.showToast('Não foi possível ativar as notificações.');
});
}).catch(() => {
return $q.when();
});
}

return $q.when();
};

/**
Expand Down
47 changes: 13 additions & 34 deletions frontend/test/specs/notification/pushNotificationServiceSpec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

(describe('Test PushNotificationService', function () {
var service, messaging, defaultToken, notificationsRef, messageService;
let service, messaging, defaultToken, notificationsRef, messageService, scope, $qMock;

const fakeCallback = function fakeCallback(data) {
return {
Expand All @@ -13,70 +13,49 @@

beforeEach(module('app'));

beforeEach(inject(function (PushNotificationService, MessageService) {
beforeEach(inject(function (PushNotificationService, MessageService, $q, $rootScope) {
service = PushNotificationService;
messaging = firebase.messaging();
messageService = MessageService;
var ref = firebase.database().ref();
notificationsRef = ref.child("notifications/key");
defaultToken = 'oaspkd-OPASKDAPO';
scope = $rootScope.$new();
$qMock = $q;
}));

describe('requestNotificationPermission', () => {
beforeEach(() => {
spyOn(service, '_hasNotificationPermission').and.returnValue(false);
spyOn(service._isMobile, 'any').and.returnValue(true);
spyOn(messaging, 'requestPermission');
spyOn(messaging, 'getToken');
spyOn(service, '_saveToken');
});

it('should call saveToken', () => {
spyOn(messaging, 'requestPermission').and.callFake(fakeCallback);
spyOn(messaging, 'getToken').and.callFake(fakeCallback);
spyOn(service, '_saveToken').and.callFake(fakeCallback);
messaging.requestPermission.and.callFake(() => $qMock.when());
messaging.getToken.and.callFake(fakeCallback);
service._saveToken.and.callFake(fakeCallback);

service.requestNotificationPermission(new User({}));
scope.$digest();

expect(messaging.requestPermission).toHaveBeenCalled();
expect(messaging.getToken).toHaveBeenCalled();
expect(service._saveToken).toHaveBeenCalled();
});

it('should not call saveToken when the user does not enable notification', () => {
spyOn(messaging, 'requestPermission').and.callFake(function() {
return {
then: function () {
return;
}
}
});
spyOn(messaging, 'getToken');
spyOn(service, '_saveToken');
messaging.requestPermission.and.callFake(() => $qMock.reject());

service.requestNotificationPermission();
scope.$digest();

expect(messaging.requestPermission).toHaveBeenCalled();
expect(messaging.getToken).not.toHaveBeenCalled();
expect(service._saveToken).not.toHaveBeenCalled();
});

it('should call showToast', () => {
spyOn(messaging, 'requestPermission').and.callFake(fakeCallback);
spyOn(messaging, 'getToken').and.callFake(() => {
return {
then: (success, error) => {
return error();
}
}
});
spyOn(service, '_saveToken');
spyOn(messageService, 'showToast');

service.requestNotificationPermission();

expect(messaging.requestPermission).toHaveBeenCalled();
expect(messaging.getToken).toHaveBeenCalled();
expect(service._saveToken).not.toHaveBeenCalled();
expect(messageService.showToast).toHaveBeenCalledWith('Não foi possível ativar as notificações.');
});
});

describe('saveToken', () => {
Expand Down

0 comments on commit dc517b4

Please sign in to comment.