react / react-0.13.3 / examples / basic-commonjs / node_modules / reactify / node_modules / react-tools / src / browser / ui / dom / __tests__ / Danger-test.js
81165 views/**1* Copyright 2013-2014, Facebook, Inc.2* All rights reserved.3*4* This source code is licensed under the BSD-style license found in the5* LICENSE file in the root directory of this source tree. An additional grant6* of patent rights can be found in the PATENTS file in the same directory.7*8* @emails react-core9*/10/*jslint evil: true */1112"use strict";1314var React = require('React');15var instantiateReactComponent = require('instantiateReactComponent');1617describe('Danger', function() {1819describe('dangerouslyRenderMarkup', function() {20var Danger;21var transaction;2223beforeEach(function() {24require('mock-modules').dumpCache();25Danger = require('Danger');2627var ReactReconcileTransaction = require('ReactReconcileTransaction');28transaction = new ReactReconcileTransaction();29});3031it('should render markup', function() {32var markup = instantiateReactComponent(33<div />34).mountComponent('.rX', transaction, 0);35var output = Danger.dangerouslyRenderMarkup([markup])[0];3637expect(output.nodeName).toBe('DIV');38});3940it('should render markup with props', function() {41var markup = instantiateReactComponent(42<div className="foo" />43).mountComponent(44'.rX',45transaction,46047);48var output = Danger.dangerouslyRenderMarkup([markup])[0];4950expect(output.nodeName).toBe('DIV');51expect(output.className).toBe('foo');52});5354it('should render wrapped markup', function() {55var markup = instantiateReactComponent(56<th />57).mountComponent('.rX', transaction, 0);58var output = Danger.dangerouslyRenderMarkup([markup])[0];5960expect(output.nodeName).toBe('TH');61});6263it('should render lists of markup with similar `nodeName`', function() {64var renderedMarkup = Danger.dangerouslyRenderMarkup(65['<p id="A">1</p>', '<p id="B">2</p>', '<p id="C">3</p>']66);6768expect(renderedMarkup.length).toBe(3);6970expect(renderedMarkup[0].nodeName).toBe('P');71expect(renderedMarkup[1].nodeName).toBe('P');72expect(renderedMarkup[2].nodeName).toBe('P');7374expect(renderedMarkup[0].innerHTML).toBe('1');75expect(renderedMarkup[1].innerHTML).toBe('2');76expect(renderedMarkup[2].innerHTML).toBe('3');77});7879it('should render lists of markup with different `nodeName`', function() {80var renderedMarkup = Danger.dangerouslyRenderMarkup(81['<p id="A">1</p>', '<td id="B">2</td>', '<p id="C">3</p>']82);8384expect(renderedMarkup.length).toBe(3);8586expect(renderedMarkup[0].nodeName).toBe('P');87expect(renderedMarkup[1].nodeName).toBe('TD');88expect(renderedMarkup[2].nodeName).toBe('P');8990expect(renderedMarkup[0].innerHTML).toBe('1');91expect(renderedMarkup[1].innerHTML).toBe('2');92expect(renderedMarkup[2].innerHTML).toBe('3');93});9495it('should throw when rendering invalid markup', function() {96expect(function() {97Danger.dangerouslyRenderMarkup(['']);98}).toThrow(99'Invariant Violation: dangerouslyRenderMarkup(...): Missing markup.'100);101102spyOn(console, "error");103104var renderedMarkup = Danger.dangerouslyRenderMarkup(['<p></p><p></p>']);105var args = console.error.argsForCall[0];106107expect(renderedMarkup.length).toBe(1);108expect(renderedMarkup[0].nodeName).toBe('P');109110expect(console.error.argsForCall.length).toBe(1);111112expect(args.length).toBe(2);113expect(args[0]).toBe('Danger: Discarding unexpected node:');114expect(args[1].nodeName).toBe('P');115});116});117118});119120121