diff --git a/test/__snapshots__/integration.ts.snap b/test/__snapshots__/integration.ts.snap index 227b54f2..80689e97 100644 --- a/test/__snapshots__/integration.ts.snap +++ b/test/__snapshots__/integration.ts.snap @@ -934,9 +934,7 @@ exports[`form 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 1, - \\"id\\": 27, - \\"x\\": 204, - \\"y\\": 157 + \\"id\\": 27 }, \\"timestamp\\": 1542268800000 }, @@ -963,9 +961,7 @@ exports[`form 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 0, - \\"id\\": 27, - \\"x\\": 204, - \\"y\\": 157 + \\"id\\": 27 }, \\"timestamp\\": 1542268800000 }, @@ -974,9 +970,7 @@ exports[`form 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 2, - \\"id\\": 27, - \\"x\\": 204, - \\"y\\": 157 + \\"id\\": 27 }, \\"timestamp\\": 1542268800000 }, @@ -995,9 +989,7 @@ exports[`form 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 1, - \\"id\\": 32, - \\"x\\": 228, - \\"y\\": 157 + \\"id\\": 32 }, \\"timestamp\\": 1542268800000 }, @@ -1024,9 +1016,7 @@ exports[`form 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 0, - \\"id\\": 32, - \\"x\\": 228, - \\"y\\": 157 + \\"id\\": 32 }, \\"timestamp\\": 1542268800000 }, @@ -1035,9 +1025,7 @@ exports[`form 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 2, - \\"id\\": 32, - \\"x\\": 228, - \\"y\\": 157 + \\"id\\": 32 }, \\"timestamp\\": 1542268800000 }, @@ -1743,9 +1731,7 @@ exports[`select2 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 1, - \\"id\\": 26, - \\"x\\": 31, - \\"y\\": 78 + \\"id\\": 26 }, \\"timestamp\\": 1542268800000 }, @@ -1774,7 +1760,6 @@ exports[`select2 1`] = ` \\"id\\": 75, \\"attributes\\": { \\"id\\": \\"select2-drop\\", - \\"style\\": \\"left: 8px; width: 47.5625px; top: 92px; bottom: auto; display: block;\\", \\"class\\": \\"select2-drop select2-display-none select2-with-searchbox select2-drop-active\\" } }, @@ -1931,8 +1916,7 @@ exports[`select2 1`] = ` \\"tagName\\": \\"div\\", \\"attributes\\": { \\"class\\": \\"select2-drop select2-display-none select2-with-searchbox select2-drop-active\\", - \\"id\\": \\"select2-drop\\", - \\"style\\": \\"left: 8px; width: 47.5625px; top: 92px; bottom: auto; display: block;\\" + \\"id\\": \\"select2-drop\\" }, \\"childNodes\\": [], \\"id\\": 75 @@ -2201,9 +2185,7 @@ exports[`select2 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 0, - \\"id\\": 93, - \\"x\\": 31, - \\"y\\": 78 + \\"id\\": 93 }, \\"timestamp\\": 1542268800000 }, @@ -2232,9 +2214,7 @@ exports[`select2 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 1, - \\"id\\": 93, - \\"x\\": 31, - \\"y\\": 78 + \\"id\\": 93 }, \\"timestamp\\": 1542268800000 }, @@ -2271,8 +2251,7 @@ exports[`select2 1`] = ` { \\"id\\": 75, \\"attributes\\": { - \\"id\\": null, - \\"style\\": \\"left: 8px; width: 47.5625px; top: 92px; bottom: auto; display: none;\\" + \\"id\\": null } }, { @@ -2334,9 +2313,7 @@ exports[`select2 1`] = ` \\"data\\": { \\"source\\": 2, \\"type\\": 0, - \\"id\\": 67, - \\"x\\": 31, - \\"y\\": 78 + \\"id\\": 67 }, \\"timestamp\\": 1542268800000 } diff --git a/test/integration.ts b/test/integration.ts index ffaebad0..649ecf67 100644 --- a/test/integration.ts +++ b/test/integration.ts @@ -6,7 +6,12 @@ import * as rollup from 'rollup'; import typescript = require('rollup-plugin-typescript'); import resolve = require('rollup-plugin-node-resolve'); import { SnapshotState, toMatchSnapshot } from 'jest-snapshot'; -import { incrementalSnapshotEvent } from '../src/types'; +import { + incrementalSnapshotEvent, + EventType, + IncrementalSource, +} from '../src/types'; +import { NodeType } from 'rrweb-snapshot'; function matchSnapshot(actual: string, testFile: string, testTitle: string) { const snapshotState = new SnapshotState(testFile, { @@ -29,12 +34,51 @@ function matchSnapshot(actual: string, testFile: string, testTitle: string) { */ function stringifySnapshots(snapshots: incrementalSnapshotEvent[]): string { return JSON.stringify( - snapshots.filter(s => { - if (s.type === 3 && s.data.source === 1) { - return false; - } - return true; - }), + snapshots + .filter(s => { + if ( + s.type === EventType.IncrementalSnapshot && + s.data.source === IncrementalSource.MouseMove + ) { + return false; + } + return true; + }) + // FIXME: travis coordinates seems different with my laptop + .map(s => { + const coordinatesReg = /(bottom|top|left|right)/; + if ( + s.type === EventType.IncrementalSnapshot && + s.data.source === IncrementalSource.MouseInteraction + ) { + delete s.data.x; + delete s.data.y; + } + if ( + s.type === EventType.IncrementalSnapshot && + s.data.source === IncrementalSource.Mutation + ) { + s.data.attributes.forEach(a => { + if ( + 'style' in a.attributes && + coordinatesReg.test(a.attributes.style!) + ) { + delete a.attributes.style; + } + }); + s.data.adds.forEach(add => { + if ( + add.node.type === NodeType.Element && + 'style' in add.node.attributes && + typeof add.node.attributes.style === 'string' && + coordinatesReg.test(add.node.attributes.style) + ) { + delete add.node.attributes.style; + } + }); + } + return s; + }), null, 2, );