本文整理匯總了TypeScript中@angular/service-worker/worker/testing/scope.SwTestHarness類的典型用法代碼示例。如果您正苦於以下問題:TypeScript SwTestHarness類的具體用法?TypeScript SwTestHarness怎麽用?TypeScript SwTestHarness使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了SwTestHarness類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: async_beforeEach
async_beforeEach(async() => {
// Fire up the client.
mock = new MockServiceWorkerContainer();
comm = new NgswCommChannel(mock as any);
scope = new SwTestHarnessBuilder().withServerState(server).build();
driver = new Driver(scope, scope, new CacheDatabase(scope, scope));
scope.clients.add('default');
scope.clients.getMock('default') !.queue.subscribe(msg => { mock.sendMessage(msg); });
mock.messages.subscribe(msg => { scope.handleMessage(msg, 'default'); });
mock.notificationClicks.subscribe(msg => { scope.handleMessage(msg, 'default'); });
mock.setupSw();
reg = mock.mockRegistration !;
await Promise.all(scope.handleFetch(new MockRequest('/only.txt'), 'default'));
await driver.initialized;
});
示例2: describe
describe('ngsw + companion lib', () => {
let mock: MockServiceWorkerContainer;
let comm: NgswCommChannel;
let reg: MockServiceWorkerRegistration;
let scope: SwTestHarness;
let driver: Driver;
async_beforeEach(async() => {
// Fire up the client.
mock = new MockServiceWorkerContainer();
comm = new NgswCommChannel(mock as any);
scope = new SwTestHarnessBuilder().withServerState(server).build();
driver = new Driver(scope, scope, new CacheDatabase(scope, scope));
scope.clients.add('default');
scope.clients.getMock('default') !.queue.subscribe(msg => { mock.sendMessage(msg); });
mock.messages.subscribe(msg => { scope.handleMessage(msg, 'default'); });
mock.notificationClicks.subscribe(msg => { scope.handleMessage(msg, 'default'); });
mock.setupSw();
reg = mock.mockRegistration !;
await Promise.all(scope.handleFetch(new MockRequest('/only.txt'), 'default'));
await driver.initialized;
});
async_it('communicates back and forth via update check', async() => {
const update = new SwUpdate(comm);
await update.checkForUpdate();
});
async_it('detects an actual update', async() => {
const update = new SwUpdate(comm);
scope.updateServerState(serverUpdate);
const gotUpdateNotice =
(async() => { const notice = await obsToSinglePromise(update.available); })();
await update.checkForUpdate();
await gotUpdateNotice;
});
async_it('receives push message notifications', async() => {
const push = new SwPush(comm);
scope.updateServerState(serverUpdate);
const gotPushNotice = (async() => {
const message = await obsToSinglePromise(push.messages);
expect(message).toEqual({
test: 'success',
});
})();
await scope.handlePush({
test: 'success',
});
await gotPushNotice;
});
async_it('receives push message click events', async() => {
const push = new SwPush(comm);
scope.updateServerState(serverUpdate);
const gotNotificationClick = (async() => {
const event: any = await obsToSinglePromise(push.notificationClicks);
expect(event.action).toEqual('clicked');
expect(event.notification.title).toEqual('This is a test');
})();
await scope.handleClick({title: 'This is a test'}, 'clicked');
await gotNotificationClick;
});
});
示例3: MockFileSystemBuilder
(function() {
// Skip environments that don't support the minimum APIs needed to run the SW tests.
if (!SwTestHarness.envIsSupported()) {
return;
}
const dist = new MockFileSystemBuilder().addFile('/only.txt', 'this is only').build();
const distUpdate = new MockFileSystemBuilder().addFile('/only.txt', 'this is only v2').build();
function obsToSinglePromise<T>(obs: Observable<T>): Promise<T> {
return obs.pipe(take(1)).toPromise();
}
const manifest: Manifest = {
configVersion: 1,
timestamp: 1234567890123,
appData: {version: '1'},
index: '/only.txt',
assetGroups: [{
name: 'assets',
installMode: 'prefetch',
updateMode: 'prefetch',
urls: ['/only.txt'],
patterns: [],
}],
navigationUrls: [],
hashTable: tmpHashTableForFs(dist),
};
const manifestUpdate: Manifest = {
configVersion: 1,
timestamp: 1234567890123,
appData: {version: '2'},
index: '/only.txt',
assetGroups: [{
name: 'assets',
installMode: 'prefetch',
updateMode: 'prefetch',
urls: ['/only.txt'],
patterns: [],
}],
navigationUrls: [],
hashTable: tmpHashTableForFs(distUpdate),
};
const server = new MockServerStateBuilder().withStaticFiles(dist).withManifest(manifest).build();
const serverUpdate =
new MockServerStateBuilder().withStaticFiles(distUpdate).withManifest(manifestUpdate).build();
describe('ngsw + companion lib', () => {
let mock: MockServiceWorkerContainer;
let comm: NgswCommChannel;
let reg: MockServiceWorkerRegistration;
let scope: SwTestHarness;
let driver: Driver;
async_beforeEach(async() => {
// Fire up the client.
mock = new MockServiceWorkerContainer();
comm = new NgswCommChannel(mock as any);
scope = new SwTestHarnessBuilder().withServerState(server).build();
driver = new Driver(scope, scope, new CacheDatabase(scope, scope));
scope.clients.add('default');
scope.clients.getMock('default') !.queue.subscribe(msg => { mock.sendMessage(msg); });
mock.messages.subscribe(msg => { scope.handleMessage(msg, 'default'); });
mock.notificationClicks.subscribe(msg => { scope.handleMessage(msg, 'default'); });
mock.setupSw();
reg = mock.mockRegistration !;
await Promise.all(scope.handleFetch(new MockRequest('/only.txt'), 'default'));
await driver.initialized;
});
async_it('communicates back and forth via update check', async() => {
const update = new SwUpdate(comm);
await update.checkForUpdate();
});
async_it('detects an actual update', async() => {
const update = new SwUpdate(comm);
scope.updateServerState(serverUpdate);
const gotUpdateNotice =
(async() => { const notice = await obsToSinglePromise(update.available); })();
await update.checkForUpdate();
await gotUpdateNotice;
});
async_it('receives push message notifications', async() => {
const push = new SwPush(comm);
scope.updateServerState(serverUpdate);
const gotPushNotice = (async() => {
//.........這裏部分代碼省略.........
示例4: async
async_it('receives push message click events', async() => {
const push = new SwPush(comm);
scope.updateServerState(serverUpdate);
const gotNotificationClick = (async() => {
const event: any = await obsToSinglePromise(push.notificationClicks);
expect(event.action).toEqual('clicked');
expect(event.notification.title).toEqual('This is a test');
})();
await scope.handleClick({title: 'This is a test'}, 'clicked');
await gotNotificationClick;
});
示例5:
mock.notificationClicks.subscribe(msg => { scope.handleMessage(msg, 'default'); });