Skip to content

Commit

Permalink
Merge pull request #26 from andreabertagnolli/divide-unit-test-from-i…
Browse files Browse the repository at this point in the history
…ntegration

Divide unit tests from integration
  • Loading branch information
f-hj authored Nov 16, 2018
2 parents bb1973b + 994c523 commit 74df948
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 85 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ node_js:
install: npm install

script:
- npm test
- npm run test:unit

notifications:
email: false
46 changes: 27 additions & 19 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"main": "lib/index.js",
"scripts": {
"pretest": "eslint .",
"test:unit": "eslint . && mocha",
"test": "mocha --recursive"
},
"author": "Florian Hermouet-Joscht",
Expand Down
5 changes: 3 additions & 2 deletions test/multiDown.js → test/integration/multiDown.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
/* eslint-env mocha */

const slsk = require('../lib/index.js')

const path = require('path')

const slsk = require('../../lib/index.js')

describe('multi download', () => {
let client
let file1
let file2
let file3

after(() => {
if (client) client.destroy()
})
Expand Down
8 changes: 7 additions & 1 deletion test/search.js → test/integration/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const fs = require('fs')
const process = require('process')
const assert = require('assert')

const slsk = require('../lib/index.js')
const slsk = require('../../lib/index.js')

describe('search', () => {
let client
Expand All @@ -15,6 +15,12 @@ describe('search', () => {
if (client) client.destroy()
})

it('must have env vars', (done) => {
assert.strictEqual(typeof process.env.SLSK_USER, 'string')
assert.strictEqual(typeof process.env.SLSK_PASS, 'string')
done()
})

it('must login', (done) => {
slsk.connect({
user: process.env.SLSK_USER,
Expand Down
37 changes: 23 additions & 14 deletions test/login.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,42 @@
/* eslint-env mocha */

const process = require('process')
const assert = require('assert')
const slsk = require('../lib/index.js')
const MockServer = require('./mock-server.js')

describe('login', () => {
it('must have env vars', (done) => {
assert.strictEqual(typeof process.env.SLSK_USER, 'string')
assert.strictEqual(typeof process.env.SLSK_PASS, 'string')
done()
const serverHost = 'localhost'
const serverPort = 2242

let mockServer = new MockServer({
host: serverHost,
port: serverPort
})
mockServer.on('login', login => {
if (login.username === 'ImTheUsername' && login.password === 'EasyButRight') {
mockServer.loginSuccess(login.client)
} else {
mockServer.loginFail(login.client)
}
})

it('must login', (done) => {
it('must login with valid credentials', (done) => {
slsk.connect({
user: process.env.SLSK_USER,
pass: process.env.SLSK_PASS
user: 'ImTheUsername',
pass: 'EasyButRight',
host: serverHost,
port: serverPort
}, (err, res) => {
done(err)
})
})

it('must close socket', () => {
slsk.disconnect()
})

it('must not login', (done) => {
it('must not login with invalid credentials', (done) => {
slsk.connect({
user: 'IAmWebServer',
pass: 'IAmWrong'
pass: 'IAmWrong',
host: serverHost,
port: serverPort
}, (err, res) => {
assert.strictEqual(err.message, 'INVALIDPASS')
done()
Expand Down
9 changes: 6 additions & 3 deletions test/unit/mock-server.js → test/mock-server.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
const EventEmitter = require('events')
const net = require('net')
const Messages = require('../../lib/messages.js')
const Message = require('../../lib/message.js')
// const MessageFactory = require('./message-factory.js')
const Messages = require('../lib/messages.js')
const Message = require('../lib/message.js')
const debug = require('debug')('slsk:mock-server:i')

module.exports = class Server extends EventEmitter {
Expand All @@ -29,6 +28,10 @@ module.exports = class Server extends EventEmitter {
debug(`Login attempt username ${username} version ${version}`)
this.emit('login', { client, username, password, version })
break
case 2:
let port = msg.int32()
debug(`recv SetWaitPort ${port}`)
break
default:
throw new Error(`unknown srv message code: ${code}`)
}
Expand Down
45 changes: 0 additions & 45 deletions test/unit/login.js

This file was deleted.

0 comments on commit 74df948

Please sign in to comment.