• Jump To … +
    ClientController.js ClientRequest.js ExpressServerRequest.js ReactServerAgent.js Cache.js Plugins.js Request.js handlePage.js loggingClient.js ClientRequestSpec.js NormalValuesPage.js NullValuePromisesPage.js NullValuesPage.js reactMiddlewareSpec.js client.js common.js History.js RootContainer.js RootElement.js TheFold.js config.js constants.js Navigator.js RequestContext.js logging.js client.js common.js response.js server.js stats.js renderMiddleware.js server.js ClientCssHelper.js DebugUtil.js PageUtil.js RequestLocalStorage.js StringEscapeUtil.js bundleNameUtil.js navigateTo.js
  • reactMiddlewareSpec.js

  • ¶
    const MemoryStream = require('memory-stream');
    
    import { _testFunctions } from "../renderMiddleware";
    import PageUtil from "../util/PageUtil";
    
    import NullValuesPage from "./NullValuesPage";
    import NullValuePromisesPage from "./NullValuePromisesPage";
    import NormalValuesPage from "./NormalValuesPage";
    
    describe("renderMiddleware", () => {
    	let mockSocket,
    		page;
    
    	describe("null values", () => {
    		beforeAll(() => {
    			page = PageUtil.createPageChain([new NullValuesPage()]);
    		});
    
    		beforeEach(() => {
    			mockSocket = new MemoryStream();
    		});
    
    		afterEach(() => {
    			mockSocket = null;
    		});
    
    		it("don't render meta tags", (finishTest) => {
    			_testFunctions.renderMetaTags(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    
    		it("don't render link tags", (finishTest) => {
    			_testFunctions.renderLinkTags(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    
    		it("doesn't render base tag", (finishTest) => {
    			_testFunctions.renderBaseTag(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    	});
    
    	describe("promises with null values", () => {
    		beforeAll(() => {
    			page = PageUtil.createPageChain([new NullValuePromisesPage()]);
    		});
    
    		beforeEach(() => {
    			mockSocket = new MemoryStream();
    		});
    
    		afterEach(() => {
    			mockSocket = null;
    		});
    
    		it("don't render meta tags", (finishTest) => {
    			_testFunctions.renderMetaTags(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    
    		it("don't render link tags", (finishTest) => {
    			_testFunctions.renderLinkTags(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    
    		it("doesn't render base tag", (finishTest) => {
    			_testFunctions.renderBaseTag(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    	});
    
    	describe("good values", () => {
    		beforeAll(() => {
    			page = PageUtil.createPageChain([new NormalValuesPage()]);
    		});
    
    		beforeEach(() => {
    			mockSocket = new MemoryStream();
    		});
    
    		afterEach(() => {
    			mockSocket = null;
    		});
    
    		it("render a single meta tag", (finishTest) => {
    			_testFunctions.renderMetaTags(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('<meta charset="utf8">');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    
    		it("render a single link tags", (finishTest) => {
    			_testFunctions.renderLinkTags(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('<link data-react-server-link rel="prefetch" href="//www.google-analytics.com">');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    
    		it("render a base tag", (finishTest) => {
    			_testFunctions.renderBaseTag(page, mockSocket)
    				.then(() => {
    					expect(mockSocket.toString()).toBe('<base href="//www.google.com">');
    				}, finishTest.fail)
    				.done(finishTest);
    		});
    	});
    });