From a50c977a9e6e27d85eb253ce9441cc00087312c8 Mon Sep 17 00:00:00 2001 From: Dan Skinner Date: Tue, 4 Feb 2025 14:03:08 +0000 Subject: [PATCH] core: move tests from src to test --- .../core/src/lib/test/clone-client.test.ts | 220 ------------------ .../lib/test => test/lib}/async-every.test.ts | 2 +- .../test => test/lib}/callback-runner.test.ts | 4 +- .../lib/test => test/lib}/derecursify.test.ts | 2 +- .../lib/test => test/lib}/es-utils.test.ts | 12 +- .../test => test/lib}/extract-object.test.ts | 2 +- .../lib}/feature-flag-delegate.test.ts | 2 +- .../test => test/lib}/json-payload.test.ts | 2 +- .../lib/test => test/lib}/validators.test.ts | 4 +- 9 files changed, 15 insertions(+), 235 deletions(-) delete mode 100644 packages/core/src/lib/test/clone-client.test.ts rename packages/core/{src/lib/test => test/lib}/async-every.test.ts (96%) rename packages/core/{src/lib/test => test/lib}/callback-runner.test.ts (95%) rename packages/core/{src/lib/test => test/lib}/derecursify.test.ts (98%) rename packages/core/{src/lib/test => test/lib}/es-utils.test.ts (84%) rename packages/core/{src/lib/test => test/lib}/extract-object.test.ts (85%) rename packages/core/{src/lib/test => test/lib}/feature-flag-delegate.test.ts (99%) rename packages/core/{src/lib/test => test/lib}/json-payload.test.ts (98%) rename packages/core/{src/lib/test => test/lib}/validators.test.ts (88%) diff --git a/packages/core/src/lib/test/clone-client.test.ts b/packages/core/src/lib/test/clone-client.test.ts deleted file mode 100644 index cd0e4e2210..0000000000 --- a/packages/core/src/lib/test/clone-client.test.ts +++ /dev/null @@ -1,220 +0,0 @@ -import Client from '../../client' -import cloneClient from '../clone-client' - -describe('clone-client', () => { - it('should not copy the configuration', () => { - const apiKey = '123456abcdef123456abcdef123456ab' - - const original = new Client({ apiKey }) - const clone = cloneClient(original) - - expect(clone._config).toBe(original._config) - expect(clone._config.apiKey).toBe(original._config.apiKey) - }) - - it('should not copy the logger', () => { - const logger = { - debug: () => {}, - info: () => {}, - warn: () => {}, - error: () => {} - } - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab', logger }) - const clone = cloneClient(original) - - expect(clone._logger).toBe(logger) - expect(clone._logger).toBe(original._logger) - }) - - it('should not copy the delivery implementation', () => { - const delivery = { - sendEvent: () => {}, - sendSession: () => {} - } - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original._setDelivery(() => delivery) - - const clone = cloneClient(original) - - expect(clone._delivery).toBe(delivery) - expect(clone._delivery).toBe(original._delivery) - }) - - it('should not copy the session delegate', () => { - const sessionDelegate = { - startSession: (client: Client) => client, - resumeSession: (client: Client) => client, - pauseSession: () => {} - } - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original._sessionDelegate = sessionDelegate - - const clone = cloneClient(original) - - expect(clone._sessionDelegate).toBe(sessionDelegate) - expect(clone._sessionDelegate).toBe(original._sessionDelegate) - }) - - it('should not copy the context', () => { - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.setContext('abc') - - const clone = cloneClient(original) - - expect(clone.getContext()).toBe('abc') - expect(clone.getContext()).toBe(original.getContext()) - - // changing the clone's context shouldn't affect the original's context - clone.setContext('xyz') - - expect(clone.getContext()).toBe('xyz') - expect(original.getContext()).toBe('abc') - }) - - it('should clone breadcrumbs', () => { - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.leaveBreadcrumb('breadcrumb 1') - - expect(original._breadcrumbs).toHaveLength(1) - const breadcrumb = original._breadcrumbs[0] - - const clone = cloneClient(original) - - expect(clone._breadcrumbs).toHaveLength(1) - expect(clone._breadcrumbs[0]).toBe(breadcrumb) - expect(clone._breadcrumbs).not.toBe(original._breadcrumbs) - - // leaving a new breadcrumb on the clone shouldn't affect the original - clone.leaveBreadcrumb('breadcrumb 2') - - expect(clone._breadcrumbs).toHaveLength(2) - expect(original._breadcrumbs).toHaveLength(1) - }) - - it('should clone metadata', () => { - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.addMetadata('abc', 'xyz', 123) - - const clone = cloneClient(original) - - expect(clone._metadata).toStrictEqual({ abc: { xyz: 123 } }) - expect(clone._metadata).not.toBe(original._metadata) - - // changing the clone's metadata shouldn't affect the original - clone.addMetadata('abc', 'xyz', 999) - - expect(clone._metadata).toStrictEqual({ abc: { xyz: 999 } }) - expect(original._metadata).toStrictEqual({ abc: { xyz: 123 } }) - }) - - it('should clone feature flags', () => { - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.addFeatureFlag('abc', '123') - - const clone = cloneClient(original) - - expect(clone._features).toStrictEqual([{ name: 'abc', variant: '123' }]) - expect(clone._features).not.toBe(original._features) - - // changing the clone's feature flags shouldn't affect the original - clone.addFeatureFlag('xyz', '999') - - expect(clone._features).toStrictEqual([{ name: 'abc', variant: '123' }, { name: 'xyz', variant: '999' }]) - expect(original._features).toStrictEqual([{ name: 'abc', variant: '123' }]) - }) - - it('should clone user information', () => { - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.setUser('123', 'abc@example.com', 'abc') - - const clone = cloneClient(original) - - expect(clone.getUser()).toStrictEqual({ id: '123', email: 'abc@example.com', name: 'abc' }) - expect(clone.getUser()).not.toBe(original.getUser()) - - // changing the clone's user shouldn't affect the original - clone.setUser('999', 'xyz@example.com', 'xyz') - - expect(clone.getUser()).toStrictEqual({ id: '999', email: 'xyz@example.com', name: 'xyz' }) - expect(original.getUser()).toStrictEqual({ id: '123', email: 'abc@example.com', name: 'abc' }) - }) - - it('should clone the on error callback array', () => { - const onError = () => {} - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.addOnError(onError) - - const clone = cloneClient(original) - - expect(clone._cbs.e).toHaveLength(1) - expect(clone._cbs.e[0]).toBe(onError) - expect(clone._cbs.e).not.toBe(original._cbs.e) - - // changing the clone's callbacks shouldn't affect the original - clone.addOnError(onError) - - expect(clone._cbs.e).toHaveLength(2) - expect(original._cbs.e).toHaveLength(1) - }) - - it('should clone the on session callback array', () => { - const onSession = () => {} - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.addOnSession(onSession) - - const clone = cloneClient(original) - - expect(clone._cbs.s).toHaveLength(1) - expect(clone._cbs.s[0]).toBe(onSession) - expect(clone._cbs.s).not.toBe(original._cbs.s) - - // changing the clone's callbacks shouldn't affect the original - clone.addOnSession(onSession) - - expect(clone._cbs.s).toHaveLength(2) - expect(original._cbs.s).toHaveLength(1) - }) - - it('should clone the on session payload callback array', () => { - const onSessionPayload = () => {} - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original._addOnSessionPayload(onSessionPayload) - - const clone = cloneClient(original) - - expect(clone._cbs.sp).toHaveLength(1) - expect(clone._cbs.sp[0]).toBe(onSessionPayload) - expect(clone._cbs.sp).not.toBe(original._cbs.sp) - - // changing the clone's callbacks shouldn't affect the original - clone._addOnSessionPayload(onSessionPayload) - - expect(clone._cbs.sp).toHaveLength(2) - expect(original._cbs.sp).toHaveLength(1) - }) - - it('should clone the on breadcrumb callback array', () => { - const onBreadcrumb = () => {} - - const original = new Client({ apiKey: '123456abcdef123456abcdef123456ab' }) - original.addOnBreadcrumb(onBreadcrumb) - - const clone = cloneClient(original) - - expect(clone._cbs.b).toHaveLength(1) - expect(clone._cbs.b[0]).toBe(onBreadcrumb) - expect(clone._cbs.b).not.toBe(original._cbs.b) - - // changing the clone's callbacks shouldn't affect the original - clone.addOnBreadcrumb(onBreadcrumb) - - expect(clone._cbs.b).toHaveLength(2) - expect(original._cbs.b).toHaveLength(1) - }) -}) diff --git a/packages/core/src/lib/test/async-every.test.ts b/packages/core/test/lib/async-every.test.ts similarity index 96% rename from packages/core/src/lib/test/async-every.test.ts rename to packages/core/test/lib/async-every.test.ts index 8aff108e4f..1e02ba1e61 100644 --- a/packages/core/src/lib/test/async-every.test.ts +++ b/packages/core/test/lib/async-every.test.ts @@ -1,4 +1,4 @@ -import every from '../async-every' +import every from '../../src/lib/async-every' describe('async-every', () => { it('handles iterator errors', done => { diff --git a/packages/core/src/lib/test/callback-runner.test.ts b/packages/core/test/lib/callback-runner.test.ts similarity index 95% rename from packages/core/src/lib/test/callback-runner.test.ts rename to packages/core/test/lib/callback-runner.test.ts index 1d2ccda067..ad5d5e283e 100644 --- a/packages/core/src/lib/test/callback-runner.test.ts +++ b/packages/core/test/lib/callback-runner.test.ts @@ -1,5 +1,5 @@ -import runCallbacks from '../callback-runner' -import { NodeCallbackType } from '../async-every' +import runCallbacks from '../../src/lib/callback-runner' +import { NodeCallbackType } from '../../src/lib/async-every' interface TestEvent { name: string diff --git a/packages/core/src/lib/test/derecursify.test.ts b/packages/core/test/lib/derecursify.test.ts similarity index 98% rename from packages/core/src/lib/test/derecursify.test.ts rename to packages/core/test/lib/derecursify.test.ts index 5e6cf12ae0..d0db9ef867 100644 --- a/packages/core/src/lib/test/derecursify.test.ts +++ b/packages/core/test/lib/derecursify.test.ts @@ -1,4 +1,4 @@ -import derecursift from '../derecursify' +import derecursift from '../../src/lib/derecursify' describe('delivery: react native makeSafe', () => { it('leaves simple types intact', () => { diff --git a/packages/core/src/lib/test/es-utils.test.ts b/packages/core/test/lib/es-utils.test.ts similarity index 84% rename from packages/core/src/lib/test/es-utils.test.ts rename to packages/core/test/lib/es-utils.test.ts index dc4e96c953..c40d19f83b 100644 --- a/packages/core/src/lib/test/es-utils.test.ts +++ b/packages/core/test/lib/es-utils.test.ts @@ -1,9 +1,9 @@ -import map from '../es-utils/map' -import reduce from '../es-utils/reduce' -import filter from '../es-utils/filter' -import keys from '../es-utils/keys' -import isArray from '../es-utils/is-array' -import includes from '../es-utils/includes' +import map from '../../src/lib/es-utils/map' +import reduce from '../../src/lib/es-utils/reduce' +import filter from '../../src/lib/es-utils/filter' +import keys from '../../src/lib/es-utils/keys' +import isArray from '../../src/lib/es-utils/is-array' +import includes from '../../src/lib/es-utils/includes' describe('es-utils', () => { describe('reduce(arr, fn, accum)', () => { diff --git a/packages/core/src/lib/test/extract-object.test.ts b/packages/core/test/lib/extract-object.test.ts similarity index 85% rename from packages/core/src/lib/test/extract-object.test.ts rename to packages/core/test/lib/extract-object.test.ts index fb78f31e51..713c434b75 100644 --- a/packages/core/src/lib/test/extract-object.test.ts +++ b/packages/core/test/lib/extract-object.test.ts @@ -1,4 +1,4 @@ -import extractObject from '../extract-object' +import extractObject from '../../src/lib/extract-object' describe('extractObject', () => { it('returns undefined if the key is not an object, or the value otherwise', () => { diff --git a/packages/core/src/lib/test/feature-flag-delegate.test.ts b/packages/core/test/lib/feature-flag-delegate.test.ts similarity index 99% rename from packages/core/src/lib/test/feature-flag-delegate.test.ts rename to packages/core/test/lib/feature-flag-delegate.test.ts index 8d8a2d69f3..7164f82488 100644 --- a/packages/core/src/lib/test/feature-flag-delegate.test.ts +++ b/packages/core/test/lib/feature-flag-delegate.test.ts @@ -1,4 +1,4 @@ -import delegate from '../feature-flag-delegate' +import delegate from '../../src/lib/feature-flag-delegate' describe('feature flag delegate', () => { describe('#add', () => { diff --git a/packages/core/src/lib/test/json-payload.test.ts b/packages/core/test/lib/json-payload.test.ts similarity index 98% rename from packages/core/src/lib/test/json-payload.test.ts rename to packages/core/test/lib/json-payload.test.ts index 44cf86c760..e576ae9a58 100644 --- a/packages/core/src/lib/test/json-payload.test.ts +++ b/packages/core/test/lib/json-payload.test.ts @@ -1,4 +1,4 @@ -import jsonPayload from '../json-payload' +import jsonPayload from '../../src/lib/json-payload' function makeBigObject () { var big: Record = {} diff --git a/packages/core/src/lib/test/validators.test.ts b/packages/core/test/lib/validators.test.ts similarity index 88% rename from packages/core/src/lib/test/validators.test.ts rename to packages/core/test/lib/validators.test.ts index f95b80c531..8fad64f23b 100644 --- a/packages/core/src/lib/test/validators.test.ts +++ b/packages/core/test/lib/validators.test.ts @@ -1,5 +1,5 @@ -import intRange from '../validators/int-range' -import stringWithLength from '../validators/string-with-length' +import intRange from '../../src/lib/validators/int-range' +import stringWithLength from '../../src/lib/validators/string-with-length' describe('intRange(min, max)(val)', () => { it('work with various values', () => {