diff --git a/src/isomorphic/devtools/ReactComponentTreeDevtool.js b/src/isomorphic/devtools/ReactComponentTreeDevtool.js
index 45154d3f97..a9fa5033a6 100644
--- a/src/isomorphic/devtools/ReactComponentTreeDevtool.js
+++ b/src/isomorphic/devtools/ReactComponentTreeDevtool.js
@@ -119,7 +119,7 @@ var ReactComponentTreeDevtool = {
unmountedContainerIDs.push(nativeContainerID);
},
- purgeComponentsFromUnmountedContainers() {
+ purgeUnmountedComponents() {
var unmountedIDs = Object.keys(tree).filter(id =>
unmountedContainerIDs.indexOf(tree[id].nativeContainerID) !== -1
);
diff --git a/src/isomorphic/devtools/__tests__/ReactComponentTreeDevtool-test.js b/src/isomorphic/devtools/__tests__/ReactComponentTreeDevtool-test.js
index 445c20146a..9f4b37a5f1 100644
--- a/src/isomorphic/devtools/__tests__/ReactComponentTreeDevtool-test.js
+++ b/src/isomorphic/devtools/__tests__/ReactComponentTreeDevtool-test.js
@@ -42,34 +42,43 @@ describe('ReactComponentTreeDevtool', () => {
.map(ReactComponentTreeDevtool.getDisplayName);
}
- function getTree(rootID, includeOwner = false, expectedParentID = null) {
+ function getTree(rootID, options = {}) {
+ var {
+ includeOwnerDisplayName = false,
+ includeParentDisplayName = false,
+ expectedParentID = null,
+ } = options;
+
var result = {
isComposite: ReactComponentTreeDevtool.isComposite(rootID),
displayName: ReactComponentTreeDevtool.getDisplayName(rootID),
};
+ var ownerID = ReactComponentTreeDevtool.getOwnerID(rootID);
var parentID = ReactComponentTreeDevtool.getParentID(rootID);
expect(parentID).toBe(expectedParentID);
+ if (includeParentDisplayName && parentID) {
+ result.parentDisplayName = ReactComponentTreeDevtool.getDisplayName(parentID);
+ }
+ if (includeOwnerDisplayName && ownerID) {
+ result.ownerDisplayName = ReactComponentTreeDevtool.getDisplayName(ownerID);
+ }
+
var childIDs = ReactComponentTreeDevtool.getChildIDs(rootID);
var text = ReactComponentTreeDevtool.getText(rootID);
if (text != null) {
result.text = text;
} else {
result.children = childIDs.map(childID =>
- getTree(childID, includeOwner, rootID)
+ getTree(childID, {...options, expectedParentID: rootID })
);
}
- var ownerID = ReactComponentTreeDevtool.getOwnerID(rootID);
- if (includeOwner && ownerID) {
- result.ownerDisplayName = ReactComponentTreeDevtool.getDisplayName(ownerID);
- }
-
return result;
}
- function assertTreeMatches(pairs, includeOwner) {
+ function assertTreeMatches(pairs, options) {
if (!Array.isArray(pairs[0])) {
pairs = [pairs];
}
@@ -85,23 +94,31 @@ describe('ReactComponentTreeDevtool', () => {
}
}
+ function getActualTree() {
+ return getTree(rootInstance._debugID, options).children[0];
+ }
+
pairs.forEach(([element, expectedTree]) => {
currentElement = element;
ReactDOM.render(