Skip to content

Commit 9077294

Browse files
authored
Merge pull request #137 from BBVAEngineering/update-workbox
feat: update workbox-build version
2 parents 9476639 + d3459e8 commit 9077294

File tree

10 files changed

+4711
-5747
lines changed

10 files changed

+4711
-5747
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@ jobs:
3939
- ember-lts-3.24
4040
- ember-lts-3.28
4141
- ember-release
42-
- ember-beta
4342
- ember-classic
4443
experimental: [false]
4544
include:
45+
- ember_try_scenario: ember-beta
46+
experimental: true
4647
- ember_try_scenario: ember-canary
4748
experimental: true
4849
- ember_try_scenario: embroider-safe

.huskyrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# This loads nvm.sh and sets the correct PATH before running hook
2+
export NVM_DIR="$HOME/.nvm"
3+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

addon/instance-initializers/sw.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export default {
4747
initialize(appInstance) {
4848
const { autoRegister } = getConfig(appInstance);
4949

50+
/* istanbul ignore else */
5051
if (autoRegister) {
5152
initialize(appInstance);
5253
}

addon/services/service-worker.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export default class ServiceWorker extends EventedService {
3232
const sw = window.navigator.serviceWorker;
3333
let isSupported = false;
3434

35+
/* istanbul ignore else */
3536
if (sw) {
3637
isSupported = ['getRegistrations', 'register'].every(
3738
(func) => func in sw
@@ -43,6 +44,7 @@ export default class ServiceWorker extends EventedService {
4344
}
4445

4546
_log(message) {
47+
/* istanbul ignore else */
4648
if (this.debug) {
4749
debug(`ember-cli-workbox: ${message}`);
4850
}
@@ -90,10 +92,12 @@ export default class ServiceWorker extends EventedService {
9092
this._log(`Registration succeeded. Scope is ${registration.scope}`);
9193
this.trigger('registrationComplete');
9294

95+
/* istanbul ignore else */
9396
if (!registration) {
9497
return;
9598
}
9699

100+
/* istanbul ignore else */
97101
if (registration.waiting) {
98102
// SW is waiting to activate. Can occur if multiple clients open and
99103
// one of the clients is refreshed.
@@ -105,6 +109,7 @@ export default class ServiceWorker extends EventedService {
105109
registration.addEventListener('updatefound', () => {
106110
const installingWorker = registration.installing;
107111

112+
/* istanbul ignore else */
108113
if (!installingWorker) {
109114
return;
110115
}
@@ -120,8 +125,10 @@ export default class ServiceWorker extends EventedService {
120125
}
121126

122127
_checkSWInstalled(installingWorker, registration) {
128+
console.log('state: ' + installingWorker.state);
123129
switch (installingWorker.state) {
124130
case 'installed':
131+
console.log('case installed ');
125132
if (navigator.serviceWorker.controller) {
126133
// At this point, the updated precached content has been fetched,
127134
// but the previous service worker will still serve the older

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module.exports = {
3333
env = env || process.env.EMBER_ENV;
3434

3535
// Do nothing if no ENV. For example, when running an ember generator.
36+
/* istanbul ignore else */
3637
if (!env) {
3738
return;
3839
}

lib/broccoli-workbox.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class BroccoliWorkbox extends Plugin {
3535
}
3636

3737
removeServiceWorker(filePath) {
38+
/* istanbul ignore else */
3839
if (fs.existsSync(filePath)) {
3940
debug(yellow('Addon disabled. Service worker exist, remove it'));
4041
fs.unlinkSync(filePath);
@@ -56,6 +57,7 @@ class BroccoliWorkbox extends Plugin {
5657
)
5758
);
5859

60+
/* istanbul ignore else */
5961
if (warnings) {
6062
debug(yellow(warnings));
6163
}
@@ -72,6 +74,7 @@ class BroccoliWorkbox extends Plugin {
7274

7375
workboxOptions.swDest = path.join(directory, workboxOptions.swDest);
7476

77+
/* istanbul ignore else */
7578
if (!this.options.enabled) {
7679
debug(yellow('Addon disabled. Disable and remove service worker...'));
7780

@@ -92,6 +95,7 @@ class BroccoliWorkbox extends Plugin {
9295
);
9396

9497
// Remove workbox libraries directory to prevent exception on recopying it.
98+
/* istanbul ignore else */
9599
if (
96100
!workboxOptions.importWorkboxFromCDN &&
97101
fs.existsSync(workboxDirectory)
@@ -111,7 +115,7 @@ class BroccoliWorkbox extends Plugin {
111115
);
112116

113117
workboxOptions.importScripts = filesToIncludeInSW;
114-
118+
/* istanbul ignore else */
115119
if (this.options.importScriptsTransform) {
116120
workboxOptions.importScripts = this.options.importScriptsTransform(
117121
workboxOptions.importScripts

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"glob": "^7.2.0",
6161
"pretty-bytes": "^5.6.0",
6262
"rimraf": "^3.0.1",
63-
"workbox-build": "^5.0.0"
63+
"workbox-build": "^6.5.4"
6464
},
6565
"devDependencies": {
6666
"@commitlint/cli": "^16.1.0",

tests/acceptance/auto-register-test.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ module('Acceptance | Auto register', (hooks) => {
1919
test('its registration is made automatically', async function (assert) {
2020
swInitializer.initialize(this.owner);
2121

22+
const promise = new Promise((resolve) => {
23+
setTimeout(() => {
24+
resolve();
25+
}, 500);
26+
});
27+
28+
await promise;
2229
await visit('/');
2330

2431
const registrations =

tests/acceptance/simple-test.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { module, test } from 'qunit';
22
import { setupApplicationTest } from 'ember-qunit';
3+
import sinon from 'sinon';
34

45
module('Acceptance | Simple Acceptance Test', (hooks) => {
56
setupApplicationTest(hooks);
@@ -48,6 +49,8 @@ module('Acceptance | Simple Acceptance Test', (hooks) => {
4849
const registrations =
4950
await window.navigator.serviceWorker.getRegistrations();
5051

52+
console.log('ave4r si ' + JSON.stringify(registrations));
53+
5154
assert.ok(registrations.length);
5255
});
5356

@@ -74,6 +77,39 @@ module('Acceptance | Simple Acceptance Test', (hooks) => {
7477
assert.notOk(registrations.length);
7578
});
7679

80+
test('it unregisters sw but fails', async function (assert) {
81+
await this.swService.register('sw.js');
82+
83+
const registrations = await this.swService.sw.getRegistrations();
84+
const stubs = registrations.map((reg) => {
85+
return sinon.stub(reg, 'unregister').callsFake(() => {
86+
return Promise.resolve(false);
87+
});
88+
});
89+
90+
const stubLog = sinon.stub(this.swService, '_log');
91+
92+
assert.deepEqual(
93+
this.events,
94+
['registrationComplete'],
95+
'Event triggered: registrationComplete'
96+
);
97+
98+
await this.swService.unregisterAll();
99+
100+
assert.ok(stubLog.called);
101+
assert.ok(registrations.length);
102+
103+
assert.deepEqual(
104+
this.events,
105+
['registrationComplete', 'unregistrationComplete'],
106+
'Service worker does not exists'
107+
);
108+
109+
stubs.forEach((stubReg) => stubReg.restore());
110+
stubLog.restore();
111+
});
112+
77113
test.skip('it triggers "update" event on sw response', async function (assert) {
78114
const _reload = window.location.reload;
79115
let called = 0;

0 commit comments

Comments
 (0)