All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dom-snapshot.node_modules.@applitools.dom-shared.test.poll.test.js Maven / Gradle / Ivy

const assert = require('assert');
const poll = require('../src/poll');

describe('poll', () => {
  it('works', async () => {
    const key = 'key';
    const context = {[key]: {}};
    const r = poll(context, key);
    assert.deepStrictEqual(r, {status: 'WIP'});
    context[key].value = 'result';
    const r2 = poll(context, key);
    assert.deepStrictEqual(r2, {status: 'SUCCESS', value: 'result'});
  });

  it('returns result by chunks', async () => {
    const key = 'key';
    const context = {[key]: {}};
    const r = poll(context, key, {chunkByteLength: 5});
    assert.deepStrictEqual(r, {status: 'WIP'});
    context[key].value = '😊12345єїжtrdh';
    const r2 = poll(context, key, {chunkByteLength: 5});
    assert.deepStrictEqual(r2, {status: 'SUCCESS_CHUNKED', value: '"😊', done: false});
    const r3 = poll(context, key, {chunkByteLength: 5});
    assert.deepStrictEqual(r3, {status: 'SUCCESS_CHUNKED', value: '12345', done: false});
    const r4 = poll(context, key, {chunkByteLength: 5});
    assert.deepStrictEqual(r4, {status: 'SUCCESS_CHUNKED', value: 'єї', done: false});
    const r5 = poll(context, key, {chunkByteLength: 5});
    assert.deepStrictEqual(r5, {status: 'SUCCESS_CHUNKED', value: 'жtrd', done: false});
    const r6 = poll(context, key, {chunkByteLength: 5});
    assert.deepStrictEqual(r6, {status: 'SUCCESS_CHUNKED', value: 'h"', done: true});
  });

  it('returns result without chunking if this is unnecessary', async () => {
    const key = 'key';
    const context = {[key]: {}};
    const r = poll(context, key, {chunkByteLength: 8});
    assert.deepStrictEqual(r, {status: 'WIP'});
    context[key].value = 'result';
    const r2 = poll(context, key, {chunkByteLength: 8});
    assert.deepStrictEqual(r2, {status: 'SUCCESS', value: 'result'});
  });

  it('returns error when rejects', async () => {
    const key = 'key';
    const context = {[key]: {}};
    const r = poll(context, key);
    assert.deepStrictEqual(r, {status: 'WIP'});
    context[key].error = 'error';
    const r2 = poll(context, key);
    assert.deepStrictEqual(r2, {status: 'ERROR', error: 'error'});
  });

  it('returns error if no state', async () => {
    const key = 'key';
    const context = {};
    const r = poll(context, key);
    assert.deepStrictEqual(r, {
      status: 'ERROR',
      error: 'unexpected poll request received - cannot find state of current operation',
    });
  });
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy