diff --git a/README.md b/README.md index 2cd3cb4..5074aa9 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,19 @@ From git source: git clone https://github.com/jeremija/peer-calls.git cd peer-calls npm install -npm run build + +# for production npm start +npm run build + +# for development +npm run start:watch ``` +To run a development version, type: + + + If you successfully completed the above steps, your commandline/terminal should show that your node server is listening. diff --git a/package.json b/package.json index 2429dd9..8cb5430 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "main": "src/index.js", "scripts": { "start": "node src/index.js", - "start:server": "nodemon src/index.js", + "start:server": "nodemon src/index.js --ignore build/ --ignore src/client", "start:watch": "chastifol [ npm run js:watch ] [ npm run css:watch ] [ npm run start:server ]", "watch": "", "build": "npm run css && npm run js", diff --git a/src/client/__tests__/store-test.js b/src/client/__tests__/store-test.js index c7328be..c16b309 100644 --- a/src/client/__tests__/store-test.js +++ b/src/client/__tests__/store-test.js @@ -1,4 +1,4 @@ -window.localStorage = { debug: true } +window.localStorage = { log: true } import logger from 'redux-logger' const store = require('../store.js') diff --git a/src/client/actions/CallActions.js b/src/client/actions/CallActions.js index 1aa1846..b588900 100644 --- a/src/client/actions/CallActions.js +++ b/src/client/actions/CallActions.js @@ -23,9 +23,11 @@ export const init = () => dispatch => { export const connect = () => dispatch => { return new Promise(resolve => { socket.once('connect', () => { - dispatch(NotifyActions.warning('Connected to server socket')) resolve(socket) }) + socket.on('connect', () => { + dispatch(NotifyActions.warning('Connected to server socket')) + }) socket.on('disconnect', () => { dispatch(NotifyActions.error('Server socket disconnected')) }) diff --git a/src/client/components/Input.js b/src/client/components/Input.js index 7abe9f1..259d248 100644 --- a/src/client/components/Input.js +++ b/src/client/components/Input.js @@ -22,8 +22,10 @@ export default class Input extends React.Component { this.submit() } handleKeyPress = e => { - e.preventDefault() - e.key === 'Enter' && this.submit() + if (e.key === 'Enter') { + e.preventDefault() + this.submit() + } } submit = () => { const { notify } = this.props diff --git a/src/client/components/__tests__/Input-test.js b/src/client/components/__tests__/Input-test.js index 6e2cc00..486303c 100644 --- a/src/client/components/__tests__/Input-test.js +++ b/src/client/components/__tests__/Input-test.js @@ -54,6 +54,14 @@ describe('components/Input', () => { expect(peers.message.mock.calls).toEqual([[ message ]]) expect(notify.mock.calls).toEqual([[ `You: ${message}` ]]) }) + + it('does nothing when other key pressed', () => { + TestUtils.Simulate.keyPress(input, { + key: 'test' + }) + expect(peers.message.mock.calls.length).toBe(0) + expect(notify.mock.calls.length).toBe(0) + }) }) }) diff --git a/src/client/index.js b/src/client/index.js index 3f6378f..f633859 100644 --- a/src/client/index.js +++ b/src/client/index.js @@ -1,5 +1,5 @@ 'use strict' -import App from './components/App.js' +import App from './containers/App.js' import React from 'react' import ReactDOM from 'react-dom' import store from './store.js' diff --git a/src/client/peer/__tests__/handshake-test.js b/src/client/peer/__tests__/handshake-test.js index 46cba96..76d7a4d 100644 --- a/src/client/peer/__tests__/handshake-test.js +++ b/src/client/peer/__tests__/handshake-test.js @@ -25,7 +25,7 @@ describe('handshake', () => { describe('socket events', () => { describe('users', () => { it('add a peer for each new user and destroy peers for missing', () => { - handshake(socket, 'bla') + handshake({ socket, roomName: 'bla' }) // given let payload = { @@ -53,7 +53,7 @@ describe('handshake', () => { let data beforeEach(() => { data = {} - handshake(socket, 'bla') + handshake({ socket, roomName: 'bla' }) socket.emit('users', { initiator: 'a', users: [{ id: 'a' }, { id: 'b' }] @@ -88,7 +88,7 @@ describe('handshake', () => { let ready = false socket.once('ready', () => { ready = true }) - handshake(socket, 'bla') + handshake({ socket, roomName: 'bla' }) socket.emit('users', { initiator: 'a', diff --git a/src/client/peer/handshake.js b/src/client/peer/handshake.js index 9b560f4..268e9f7 100644 --- a/src/client/peer/handshake.js +++ b/src/client/peer/handshake.js @@ -7,7 +7,7 @@ import store from '../store.js' const debug = _debug('peercalls') const { dispatch } = store -export default function init (socket, roomName, stream) { +export default function handshake ({ socket, roomName, stream }) { function createPeer (user, initiator) { return peers.create({ socket, user, initiator, stream }) } diff --git a/src/client/store.js b/src/client/store.js index 74d3283..c448e9e 100644 --- a/src/client/store.js +++ b/src/client/store.js @@ -2,7 +2,7 @@ import { create } from './middlewares.js' import reducers from './reducers' import { applyMiddleware, createStore } from 'redux' export const middlewares = create( - window.localStorage && window.localStorage.debug + window.localStorage && window.localStorage.log ) export default createStore( diff --git a/src/server/app.js b/src/server/app.js index e39f8ef..5c517e0 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -8,7 +8,7 @@ const app = express() const http = require('http').Server(app) const io = require('socket.io')(http) -app.set('view engine', 'jade') +app.set('view engine', 'pug') app.set('views', path.join(__dirname, '../views')) app.use('/res', express.static(path.join(__dirname, '../res'))) diff --git a/src/views/_fork.jade b/src/views/_fork.pug similarity index 100% rename from src/views/_fork.jade rename to src/views/_fork.pug diff --git a/src/views/call.jade b/src/views/call.pug similarity index 66% rename from src/views/call.jade rename to src/views/call.pug index ffbeb07..ab2cdd3 100644 --- a/src/views/call.jade +++ b/src/views/call.pug @@ -8,12 +8,12 @@ html meta(name="apple-mobile-web-app-capable" content="yes") link(rel="apple-touch-icon" href="../res/icon.png") link(rel="icon" sizes="256x256" href="../res/icon.png") - link(rel="stylesheet" type="text/css" href="../css/main.css") + link(rel="stylesheet" type="text/css" href="../static/style.css") body.call - input#callId(type="hidden" value="#{callId}") - input#iceServers(type="hidden" value="#{JSON.stringify(iceServers)}") + input#callId(type="hidden" value=callId) + input#iceServers(type="hidden" value=JSON.stringify(iceServers)) div#container - script(src='../js/index.js') + script(src='../static/index.js') diff --git a/src/views/index.jade b/src/views/index.pug similarity index 90% rename from src/views/index.jade rename to src/views/index.pug index 38ef396..ad10af9 100644 --- a/src/views/index.jade +++ b/src/views/index.pug @@ -9,10 +9,10 @@ html meta(name="apple-mobile-web-app-capable" content="yes") link(rel="apple-touch-icon" href="res/icon.png") link(rel="icon" sizes="256x256" href="res/icon.png") - link(rel="stylesheet" type="text/css" href="css/main.css") + link(rel="stylesheet" type="text/css" href="static/style.css") body - include ./_fork.jade + include ./_fork.pug div#container