73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
| var React = require('react');
 | |
| var expect = require('expect');
 | |
| var sinon = require('sinon');
 | |
| var ReactDOM = require("react-dom");
 | |
| 
 | |
| var sdk = require('matrix-react-sdk');
 | |
| var RoomView = sdk.getComponent('structures.RoomView');
 | |
| var peg = require('../../../src/MatrixClientPeg');
 | |
| 
 | |
| var test_utils = require('../../test-utils');
 | |
| var q = require('q');
 | |
| 
 | |
| var Skinner = require("../../../src/Skinner");
 | |
| var stubComponent = require('../../components/stub-component.js');
 | |
| 
 | |
| describe('RoomView', function () {
 | |
|     var sandbox;
 | |
|     var parentDiv;
 | |
| 
 | |
|     beforeEach(function() {
 | |
|         test_utils.beforeEach(this);
 | |
|         sandbox = test_utils.stubClient();
 | |
|         parentDiv = document.createElement('div');
 | |
| 
 | |
|         this.oldTimelinePanel = Skinner.getComponent('structures.TimelinePanel');
 | |
|         this.oldRoomHeader = Skinner.getComponent('views.rooms.RoomHeader');
 | |
|         Skinner.addComponent('structures.TimelinePanel', stubComponent());
 | |
|         Skinner.addComponent('views.rooms.RoomHeader', stubComponent());
 | |
| 
 | |
|         peg.get().credentials = { userId: "@test:example.com" };
 | |
|     });
 | |
| 
 | |
|     afterEach(function() {
 | |
|         sandbox.restore();
 | |
| 
 | |
|         ReactDOM.unmountComponentAtNode(parentDiv);
 | |
| 
 | |
|         Skinner.addComponent('structures.TimelinePanel', this.oldTimelinePanel);
 | |
|         Skinner.addComponent('views.rooms.RoomHeader', this.oldRoomHeader);
 | |
|     });
 | |
| 
 | |
|     it('resolves a room alias to a room id', function (done) {
 | |
|         peg.get().getRoomIdForAlias.returns(q({room_id: "!randomcharacters:aser.ver"}));
 | |
| 
 | |
|         var onRoomIdResolved = sinon.spy();
 | |
| 
 | |
|         ReactDOM.render(<RoomView roomAddress="#alias:ser.ver" onRoomIdResolved={onRoomIdResolved} />, parentDiv);
 | |
| 
 | |
|         process.nextTick(function() {
 | |
|             // These expect()s don't read very well and don't give very good failure
 | |
|             // messages, but expect's toHaveBeenCalled only takes an expect spy object,
 | |
|             // not a sinon spy object.
 | |
|             expect(onRoomIdResolved.called).toExist();
 | |
|             done();
 | |
|         });
 | |
|     });
 | |
| 
 | |
|     it('joins by alias if given an alias', function (done) {
 | |
|         peg.get().getRoomIdForAlias.returns(q({room_id: "!randomcharacters:aser.ver"}));
 | |
|         peg.get().getProfileInfo.returns(q({displayname: "foo"}));
 | |
|         var roomView = ReactDOM.render(<RoomView roomAddress="#alias:ser.ver" />, parentDiv);
 | |
| 
 | |
|         peg.get().joinRoom = function(x) {
 | |
|             expect(x).toEqual('#alias:ser.ver');
 | |
|             done();
 | |
|         };
 | |
| 
 | |
|         process.nextTick(function() {
 | |
|             roomView.onJoinButtonClicked();
 | |
|         });
 | |
|     });
 | |
| });
 |