test: throw when we want a defined result

this fixings the typings with test when look for props on objects
pull/2971/head
William Grant 2 years ago
parent 8d87779554
commit 36e114a662

@ -1,7 +1,7 @@
import chai, { expect } from 'chai'; import chai, { expect } from 'chai';
import Sinon from 'sinon';
import chaiAsPromised from 'chai-as-promised'; import chaiAsPromised from 'chai-as-promised';
import { generateFakeSnode } from '../../../test-utils/utils'; import Sinon from 'sinon';
import { UpdateExpiryOnNodeSubRequest } from '../../../../session/apis/snode_api/SnodeRequestTypes';
import { import {
ExpireMessageOnSnodeProps, ExpireMessageOnSnodeProps,
ExpireRequestResponseResults, ExpireRequestResponseResults,
@ -10,10 +10,10 @@ import {
verifyExpireMsgsResponseSignature, verifyExpireMsgsResponseSignature,
verifyExpireMsgsResponseSignatureProps, verifyExpireMsgsResponseSignatureProps,
} from '../../../../session/apis/snode_api/expireRequest'; } from '../../../../session/apis/snode_api/expireRequest';
import { UpdateExpiryOnNodeSubRequest } from '../../../../session/apis/snode_api/SnodeRequestTypes'; import { GetNetworkTime } from '../../../../session/apis/snode_api/getNetworkTime';
import { UserUtils } from '../../../../session/utils'; import { UserUtils } from '../../../../session/utils';
import { isValidUnixTimestamp } from '../../../../session/utils/Timestamps'; import { isValidUnixTimestamp } from '../../../../session/utils/Timestamps';
import { GetNetworkTime } from '../../../../session/apis/snode_api/getNetworkTime'; import { generateFakeSnode } from '../../../test-utils/utils';
chai.use(chaiAsPromised as any); chai.use(chaiAsPromised as any);
@ -47,18 +47,22 @@ describe('ExpireRequest', () => {
expect(request, 'should not return null').to.not.be.null; expect(request, 'should not return null').to.not.be.null;
expect(request, 'should not return undefined').to.not.be.undefined; expect(request, 'should not return undefined').to.not.be.undefined;
if (!request) {
throw Error('nothing was returned when building the request');
}
expect(request, "method should be 'expire'").to.have.property('method', 'expire'); expect(request, "method should be 'expire'").to.have.property('method', 'expire');
expect(request?.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber); expect(request.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber);
expect(request?.params.messages[0], 'messageHash should be in messages array').to.equal( expect(request.params.messages[0], 'messageHash should be in messages array').to.equal(
props.messageHash props.messageHash
); );
expect( expect(
request?.params.expiry && isValidUnixTimestamp(request?.params.expiry), request.params.expiry && isValidUnixTimestamp(request?.params.expiry),
'expiry should be a valid unix timestamp' 'expiry should be a valid unix timestamp'
).to.be.true; ).to.be.true;
expect(request?.params.extend, 'extend should be undefined').to.be.undefined; expect(request.params.extend, 'extend should be undefined').to.be.undefined;
expect(request?.params.shorten, 'shorten should be undefined').to.be.undefined; expect(request.params.shorten, 'shorten should be undefined').to.be.undefined;
expect(request?.params.signature, 'signature should not be empty').to.not.be.empty; expect(request.params.signature, 'signature should not be empty').to.not.be.empty;
}); });
it('builds a request with extend enabled', async () => { it('builds a request with extend enabled', async () => {
const request: UpdateExpiryOnNodeSubRequest | null = await buildExpireRequest({ const request: UpdateExpiryOnNodeSubRequest | null = await buildExpireRequest({
@ -68,18 +72,22 @@ describe('ExpireRequest', () => {
expect(request, 'should not return null').to.not.be.null; expect(request, 'should not return null').to.not.be.null;
expect(request, 'should not return undefined').to.not.be.undefined; expect(request, 'should not return undefined').to.not.be.undefined;
if (!request) {
throw Error('nothing was returned when building the request');
}
expect(request, "method should be 'expire'").to.have.property('method', 'expire'); expect(request, "method should be 'expire'").to.have.property('method', 'expire');
expect(request?.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber); expect(request.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber);
expect(request?.params.messages[0], 'messageHash should be in messages array').to.equal( expect(request.params.messages[0], 'messageHash should be in messages array').to.equal(
props.messageHash props.messageHash
); );
expect( expect(
request?.params.expiry && isValidUnixTimestamp(request?.params.expiry), request.params.expiry && isValidUnixTimestamp(request?.params.expiry),
'expiry should be a valid unix timestamp' 'expiry should be a valid unix timestamp'
).to.be.true; ).to.be.true;
expect(request?.params.extend, 'extend should be true').to.be.true; expect(request.params.extend, 'extend should be true').to.be.true;
expect(request?.params.shorten, 'shorten should be undefined').to.be.undefined; expect(request.params.shorten, 'shorten should be undefined').to.be.undefined;
expect(request?.params.signature, 'signature should not be empty').to.not.be.empty; expect(request.params.signature, 'signature should not be empty').to.not.be.empty;
}); });
it('builds a request with shorten enabled', async () => { it('builds a request with shorten enabled', async () => {
const request: UpdateExpiryOnNodeSubRequest | null = await buildExpireRequest({ const request: UpdateExpiryOnNodeSubRequest | null = await buildExpireRequest({
@ -89,18 +97,22 @@ describe('ExpireRequest', () => {
expect(request, 'should not return null').to.not.be.null; expect(request, 'should not return null').to.not.be.null;
expect(request, 'should not return undefined').to.not.be.undefined; expect(request, 'should not return undefined').to.not.be.undefined;
if (!request) {
throw Error('nothing was returned when building the request');
}
expect(request, "method should be 'expire'").to.have.property('method', 'expire'); expect(request, "method should be 'expire'").to.have.property('method', 'expire');
expect(request?.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber); expect(request.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber);
expect(request?.params.messages[0], 'messageHash should be in messages array').to.equal( expect(request.params.messages[0], 'messageHash should be in messages array').to.equal(
props.messageHash props.messageHash
); );
expect( expect(
request?.params.expiry && isValidUnixTimestamp(request?.params.expiry), request.params.expiry && isValidUnixTimestamp(request?.params.expiry),
'expiry should be a valid unix timestamp' 'expiry should be a valid unix timestamp'
).to.be.true; ).to.be.true;
expect(request?.params.extend, 'extend should be undefined').to.be.undefined; expect(request.params.extend, 'extend should be undefined').to.be.undefined;
expect(request?.params.shorten, 'shorten should be true').to.be.true; expect(request.params.shorten, 'shorten should be true').to.be.true;
expect(request?.params.signature, 'signature should not be empty').to.not.be.empty; expect(request.params.signature, 'signature should not be empty').to.not.be.empty;
}); });
it('fails to build a request if extend and shorten are both enabled', async () => { it('fails to build a request if extend and shorten are both enabled', async () => {
const request: UpdateExpiryOnNodeSubRequest | null = await buildExpireRequest({ const request: UpdateExpiryOnNodeSubRequest | null = await buildExpireRequest({

@ -1,22 +1,24 @@
import chai, { expect } from 'chai'; import chai, { expect } from 'chai';
import Sinon from 'sinon';
import chaiAsPromised from 'chai-as-promised'; import chaiAsPromised from 'chai-as-promised';
import { TypedStub, generateFakeSnode } from '../../../test-utils/utils'; import Sinon from 'sinon';
import { GetExpiriesFromNodeSubRequest } from '../../../../session/apis/snode_api/SnodeRequestTypes'; import { GetExpiriesFromNodeSubRequest } from '../../../../session/apis/snode_api/SnodeRequestTypes';
import { UserUtils } from '../../../../session/utils';
import { isValidUnixTimestamp } from '../../../../session/utils/Timestamps';
import { GetNetworkTime } from '../../../../session/apis/snode_api/getNetworkTime';
import { import {
GetExpiriesFromSnodeProps, GetExpiriesFromSnodeProps,
GetExpiriesRequestResponseResults, GetExpiriesRequestResponseResults,
buildGetExpiriesRequest, buildGetExpiriesRequest,
processGetExpiriesRequestResponse, processGetExpiriesRequestResponse,
} from '../../../../session/apis/snode_api/getExpiriesRequest'; } from '../../../../session/apis/snode_api/getExpiriesRequest';
import { GetNetworkTime } from '../../../../session/apis/snode_api/getNetworkTime';
import { SnodeSignature } from '../../../../session/apis/snode_api/snodeSignatures'; import { SnodeSignature } from '../../../../session/apis/snode_api/snodeSignatures';
import { UserUtils } from '../../../../session/utils';
import { isValidUnixTimestamp } from '../../../../session/utils/Timestamps';
import { TypedStub, generateFakeSnode, stubWindowLog } from '../../../test-utils/utils';
chai.use(chaiAsPromised as any); chai.use(chaiAsPromised as any);
describe('GetExpiriesRequest', () => { describe('GetExpiriesRequest', () => {
stubWindowLog();
const getLatestTimestampOffset = 200000; const getLatestTimestampOffset = 200000;
const ourNumber = '37e1631b002de498caf7c5c1712718bde7f257c6dadeed0c21abf5e939e6c309'; const ourNumber = '37e1631b002de498caf7c5c1712718bde7f257c6dadeed0c21abf5e939e6c309';
const ourUserEd25516Keypair = { const ourUserEd25516Keypair = {
@ -50,16 +52,20 @@ describe('GetExpiriesRequest', () => {
expect(request, 'should not return null').to.not.be.null; expect(request, 'should not return null').to.not.be.null;
expect(request, 'should not return undefined').to.not.be.undefined; expect(request, 'should not return undefined').to.not.be.undefined;
if (!request) {
throw Error('nothing was returned when getting the expiries');
}
expect(request, "method should be 'get_expiries'").to.have.property('method', 'get_expiries'); expect(request, "method should be 'get_expiries'").to.have.property('method', 'get_expiries');
expect(request?.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber); expect(request.params.pubkey, 'should have a matching pubkey').to.equal(ourNumber);
expect(request?.params.messages, 'messageHashes should match our input').to.deep.equal( expect(request.params.messages, 'messageHashes should match our input').to.deep.equal(
props.messageHashes props.messageHashes
); );
expect( expect(
request?.params.timestamp && isValidUnixTimestamp(request?.params.timestamp), request.params.timestamp && isValidUnixTimestamp(request?.params.timestamp),
'the timestamp should be a valid unix timestamp' 'the timestamp should be a valid unix timestamp'
).to.be.true; ).to.be.true;
expect(request?.params.signature, 'signature should not be empty').to.not.be.empty; expect(request.params.signature, 'signature should not be empty').to.not.be.empty;
}); });
it('fails to build a request if our pubkey is missing', async () => { it('fails to build a request if our pubkey is missing', async () => {
// Modify the stub behavior for this test only we need to return an unsupported type to simulate a missing pubkey // Modify the stub behavior for this test only we need to return an unsupported type to simulate a missing pubkey

@ -1,12 +1,12 @@
/* eslint-disable func-names */ /* eslint-disable func-names */
import { expect } from 'chai'; import { expect } from 'chai';
import Sinon from 'sinon'; import Sinon from 'sinon';
import { ConfigDumpData } from '../../../data/configDump/configDump';
import { Data } from '../../../data/data'; import { Data } from '../../../data/data';
import { OpenGroupData } from '../../../data/opengroups'; import { OpenGroupData } from '../../../data/opengroups';
import { ConfigDumpData } from '../../../data/configDump/configDump';
import * as utilWorker from '../../../webworker/workers/browser/util_worker_interface';
import * as libsessionWorker from '../../../webworker/workers/browser/libsession_worker_interface'; import * as libsessionWorker from '../../../webworker/workers/browser/libsession_worker_interface';
import * as utilWorker from '../../../webworker/workers/browser/util_worker_interface';
const globalAny: any = global; const globalAny: any = global;
@ -84,7 +84,7 @@ export function stubWindow<K extends keyof Window>(fn: K, value: WindowValue<K>)
}; };
} }
export const enableLogRedirect = true; export const enableLogRedirect = false;
export const stubWindowLog = () => { export const stubWindowLog = () => {
stubWindow('log', { stubWindow('log', {

Loading…
Cancel
Save