[DO NOT MERGE] Sync flicker from master to sc-v2
Flicker on master diverged form sc-v2, to make it easier to debug flicker issues on sc-v2, push the current version of flicker into sc-v2 Test: atest FlickerTests WMShellFlickerTests Bug: 188792659 Change-Id: Iaacfaa75102f93351a6ccd0252ecd739784f94ff
This commit is contained in:
@@ -1,32 +1,6 @@
|
||||
import { DiffType } from "../src/utils/diff.js";
|
||||
import { ObjectTransformer } from "../src/transform.js";
|
||||
import { Node, DiffNode, toPlainObject } from "./utils/tree.js";
|
||||
|
||||
class ObjNode extends Node {
|
||||
constructor(name, children, combined) {
|
||||
const nodeDef = {
|
||||
kind: '',
|
||||
name: name,
|
||||
};
|
||||
if (combined) {
|
||||
nodeDef.combined = true;
|
||||
}
|
||||
super(nodeDef, children);
|
||||
}
|
||||
}
|
||||
|
||||
class ObjDiffNode extends DiffNode {
|
||||
constructor(name, diffType, children, combined) {
|
||||
const nodeDef = {
|
||||
kind: '',
|
||||
name: name,
|
||||
};
|
||||
if (combined) {
|
||||
nodeDef.combined = true;
|
||||
}
|
||||
super(nodeDef, diffType, children);
|
||||
}
|
||||
}
|
||||
import { ObjNode, ObjDiffNode, toPlainObject } from "./utils/tree.js";
|
||||
|
||||
describe("ObjectTransformer", () => {
|
||||
it("can transform a simple object", () => {
|
||||
@@ -46,19 +20,19 @@ describe("ObjectTransformer", () => {
|
||||
const expectedTransformedObj = toPlainObject(
|
||||
new ObjNode('root', [
|
||||
new ObjNode('obj', [
|
||||
new ObjNode('string: string', [], true),
|
||||
new ObjNode('number: 3', [], true),
|
||||
]),
|
||||
new ObjNode('string: string', [], true, 'root.obj.string'),
|
||||
new ObjNode('number: 3', [], true, 'root.obj.number'),
|
||||
], undefined, 'root.obj'),
|
||||
new ObjNode('array', [
|
||||
new ObjNode('0', [
|
||||
new ObjNode('nested: item', [], true),
|
||||
]),
|
||||
new ObjNode("1: two", [], true),
|
||||
]),
|
||||
])
|
||||
new ObjNode('nested: item', [], true, 'root.array.0.nested'),
|
||||
], undefined, 'root.array.0'),
|
||||
new ObjNode("1: two", [], true, 'root.array.1'),
|
||||
], undefined, 'root.array'),
|
||||
], undefined, 'root')
|
||||
);
|
||||
|
||||
const transformedObj = new ObjectTransformer(obj, 'root')
|
||||
const transformedObj = new ObjectTransformer(obj, 'root', 'root')
|
||||
.setOptions({ formatter: () => { } })
|
||||
.transform();
|
||||
|
||||
@@ -75,12 +49,12 @@ describe("ObjectTransformer", () => {
|
||||
const expectedTransformedObj = toPlainObject(
|
||||
new ObjNode('root', [
|
||||
new ObjNode('obj', [
|
||||
new ObjNode('null: null', [], true),
|
||||
]),
|
||||
])
|
||||
new ObjNode('null: null', [], true, 'root.obj.null'),
|
||||
], undefined, 'root.obj'),
|
||||
], undefined, 'root')
|
||||
);
|
||||
|
||||
const transformedObj = new ObjectTransformer(obj, 'root')
|
||||
const transformedObj = new ObjectTransformer(obj, 'root', 'root')
|
||||
.setOptions({ formatter: () => { } })
|
||||
.transform();
|
||||
|
||||
@@ -106,14 +80,14 @@ describe("ObjectTransformer", () => {
|
||||
const expectedTransformedObj = toPlainObject(
|
||||
new ObjDiffNode('root', DiffType.NONE, [
|
||||
new ObjDiffNode('a', DiffType.NONE, [
|
||||
new ObjDiffNode('b: 1', DiffType.NONE, [], true),
|
||||
new ObjDiffNode('d: 3', DiffType.ADDED, [], true),
|
||||
]),
|
||||
new ObjDiffNode('c: 2', DiffType.NONE, [], true),
|
||||
])
|
||||
new ObjDiffNode('b: 1', DiffType.NONE, [], true, 'root.a.b'),
|
||||
new ObjDiffNode('d: 3', DiffType.ADDED, [], true, 'root.a.d'),
|
||||
], false, 'root.a'),
|
||||
new ObjDiffNode('c: 2', DiffType.NONE, [], true, 'root.c'),
|
||||
], false, 'root')
|
||||
);
|
||||
|
||||
const transformedObj = new ObjectTransformer(newObj, 'root')
|
||||
const transformedObj = new ObjectTransformer(newObj, 'root', 'root')
|
||||
.setOptions({ formatter: () => { } })
|
||||
.withDiff(oldObj)
|
||||
.transform();
|
||||
@@ -133,13 +107,13 @@ describe("ObjectTransformer", () => {
|
||||
const expectedTransformedObj = toPlainObject(
|
||||
new ObjDiffNode('root', DiffType.NONE, [
|
||||
new ObjDiffNode('a', DiffType.NONE, [
|
||||
new ObjDiffNode('1', DiffType.ADDED, []),
|
||||
new ObjDiffNode('null', DiffType.DELETED, []),
|
||||
]),
|
||||
])
|
||||
new ObjDiffNode('1', DiffType.ADDED, [], false, 'root.a.1'),
|
||||
new ObjDiffNode('null', DiffType.DELETED, [], false, 'root.a.null'),
|
||||
], false, 'root.a'),
|
||||
], false, 'root')
|
||||
);
|
||||
|
||||
const transformedObj = new ObjectTransformer(newObj, 'root')
|
||||
const transformedObj = new ObjectTransformer(newObj, 'root', 'root')
|
||||
.setOptions({ formatter: () => { } })
|
||||
.withDiff(oldObj)
|
||||
.transform();
|
||||
@@ -166,19 +140,19 @@ describe("ObjectTransformer", () => {
|
||||
new ObjDiffNode('root', DiffType.NONE, [
|
||||
new ObjDiffNode('a', DiffType.NONE, [
|
||||
new ObjDiffNode('b', DiffType.NONE, [
|
||||
new ObjDiffNode('1', DiffType.ADDED, []),
|
||||
new ObjDiffNode('null', DiffType.DELETED, []),
|
||||
]),
|
||||
]),
|
||||
new ObjDiffNode('c: 2', DiffType.NONE, [], true),
|
||||
])
|
||||
new ObjDiffNode('1', DiffType.ADDED, [], false, 'root.a.b.1'),
|
||||
new ObjDiffNode('null', DiffType.DELETED, [], false, 'root.a.b.null'),
|
||||
], false, 'root.a.b'),
|
||||
], false, 'root.a'),
|
||||
new ObjDiffNode('c: 2', DiffType.NONE, [], true, 'root.c'),
|
||||
], false, 'root')
|
||||
);
|
||||
|
||||
const transformedObj = new ObjectTransformer(newObj, 'root')
|
||||
const transformedObj = new ObjectTransformer(newObj, 'root', 'root')
|
||||
.setOptions({ formatter: () => { } })
|
||||
.withDiff(oldObj)
|
||||
.transform();
|
||||
|
||||
expect(transformedObj).toEqual(expectedTransformedObj);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user