Home Reference Source Repository

src/__tests__/LifecycleProperty.js

import MapProperty from "../MapProperty";


export default class LifecycleProperty extends MapProperty {
	constructor(stateType) {
		super(stateType);

		this.willShadowCount = 0;
		this.didShadowCount = 0;
		this.childInvalidatedCount = 0;
		this.didUpdateCount = 0;
		this.willUnshadowCount = 0;
	}

	propertyWillShadow() { this.willShadowCount++; }

	propertyDidShadow() { this.didShadowCount++; }

	propertyChildInvalidated(childProperty, sourceProperty) { this.childInvalidatedCount++; }

	propertyDidUpdate() { this.didUpdateCount++; }

	propertyWillUnshadow() { this.willUnshadowCount++; }

	checkPropCount(willShadow, didShadow, childInvalicated, didUpdate, willUnshadow) {
		expect(this.willShadowCount).toBe(willShadow);
		expect(this.didShadowCount).toBe(didShadow);
		expect(this.childInvalidatedCount).toBe(childInvalicated);
		expect(this.didUpdateCount).toBe(didUpdate);
		expect(this.willUnshadowCount).toBe(willUnshadow);
	}
}

MapProperty.defineType(LifecycleProperty);