From 4cb49f55619a9ad590d86620ffc37aad27087577 Mon Sep 17 00:00:00 2001 From: yungsters Date: Sun, 28 Jul 2013 00:59:42 -0700 Subject: [PATCH 1/2] Change `ReactMultiChild` test to check for `innerHTML` descriptor. Not all testing environments will support setting the `innerHTML` descriptor. For example, PhantomJS initializes the `innerHTML` property as not configurable. --- src/core/__tests__/ReactMultiChild-test.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/core/__tests__/ReactMultiChild-test.js b/src/core/__tests__/ReactMultiChild-test.js index 8451506237..2a6d25ef22 100644 --- a/src/core/__tests__/ReactMultiChild-test.js +++ b/src/core/__tests__/ReactMultiChild-test.js @@ -21,14 +21,19 @@ describe('ReactMultiChild', function() { var React; var setInnerHTML; + // Only run this test suite if `Element.prototype.innerHTML` can be spied on. + var innerHTMLDescriptor = Object.getOwnPropertyDescriptor( + Element.prototype, + 'innerHTML' + ); + if (!innerHTMLDescriptor) { + return; + } + beforeEach(function() { require('mock-modules').dumpCache(); React = require('React'); - var innerHTMLDescriptor = Object.getOwnPropertyDescriptor( - Element.prototype, - 'innerHTML' - ); Object.defineProperty(Element.prototype, 'innerHTML', { set: setInnerHTML = jasmine.createSpy().andCallFake( innerHTMLDescriptor.set From d5e970b93fc0e5ab9d284c265b170eecee2ad0ad Mon Sep 17 00:00:00 2001 From: yungsters Date: Sun, 28 Jul 2013 01:05:13 -0700 Subject: [PATCH 2/2] Fix `Danger` test failures. The original tests were flawed because the `Danger` module exploits the fact that all React-generated markup has at least one attribute. This allows the module to extract node names from markup strings faster. However, the tests were passing in strings of markup with no attributes. Also, this fixes a test failure due to the test trying to set text content into a `` which is typically disallowed by browsers (and PhantomJS). This changes it to use `` instead. --- src/dom/__tests__/Danger-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dom/__tests__/Danger-test.js b/src/dom/__tests__/Danger-test.js index 62bccb41d1..de1ca88b44 100644 --- a/src/dom/__tests__/Danger-test.js +++ b/src/dom/__tests__/Danger-test.js @@ -59,7 +59,7 @@ describe('Danger', function() { it('should render lists of markup with similar `nodeName`', function() { var renderedMarkup = Danger.dangerouslyRenderMarkup( - ['

1

', '

2

', '

3

'] + ['

1

', '

2

', '

3

'] ); expect(renderedMarkup.length).toBe(3); @@ -75,13 +75,13 @@ describe('Danger', function() { it('should render lists of markup with different `nodeName`', function() { var renderedMarkup = Danger.dangerouslyRenderMarkup( - ['

1

', '2', '

3

'] + ['

1

', '2', '

3

'] ); expect(renderedMarkup.length).toBe(3); expect(renderedMarkup[0].nodeName).toBe('P'); - expect(renderedMarkup[1].nodeName).toBe('TR'); + expect(renderedMarkup[1].nodeName).toBe('TD'); expect(renderedMarkup[2].nodeName).toBe('P'); expect(renderedMarkup[0].innerHTML).toBe('1');