VulpesOS/gaia/apps/sharedtest/test/unit/achievements_service_test.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

64 lines
2 KiB
JavaScript
Executable file

'use strict';
/* global AchievementsService, MockNavigatorSettings */
require('/shared/test/unit/mocks/mock_navigator_moz_settings.js');
require('/shared/js/achievements-service.js');
suite('Achievements Service', function() {
var mockAchievement = {
criteria: 'achievements/achievement',
evidence: 'urn:achievement:achieved',
name: 'Achievement',
description: 'Achievement description',
image: '/style/icons/Blank.png'
};
var achievementsService, realMozSettings, realNotification;
setup(function() {
achievementsService = new AchievementsService();
realMozSettings = navigator.mozSettings;
navigator.mozSettings = MockNavigatorSettings;
realNotification = window.Notification;
window.Notification = sinon.spy();
navigator.mozSettings.createLock().set({
achievements: [{
criteria: 'achievements/achievement',
issuer: 'achievements_service_test'
}]
});
});
teardown(function() {
navigator.mozSettings = realMozSettings;
window.Notification = realNotification;
});
test('reward', function(done) {
achievementsService.reward(mockAchievement).then(function() {
var notification = window.Notification.args[0][1];
var issuesOn = notification.tag;
var achievement = navigator.mozSettings.createLock().get(
'achievements').result.achievements[0];
sinon.assert.calledOnce(window.Notification);
assert.isTrue(window.Notification.calledWith(mockAchievement.name));
assert.equal(notification.body, mockAchievement.description);
assert.ok(issuesOn);
assert.equal(notification.icon.indexOf('data:image/png'), 0);
assert.equal(achievement.criteria, mockAchievement.criteria);
assert.equal(achievement.evidence, mockAchievement.evidence);
assert.equal(achievement.issuedOn, issuesOn);
assert.ok(achievement.recipient);
assert.equal(achievement.uid.indexOf('achievement'), 0);
done();
});
});
});