-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Livereload stream #118
base: master
Are you sure you want to change the base?
Livereload stream #118
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
import request from 'supertest'; | ||
import assert from 'assert'; | ||
import listen from './helpers/listen'; | ||
import {PassThrough} from 'stream'; | ||
|
||
describe('tiny-lr', () => { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you change the description to something like |
||
before(listen({ | ||
livereload: function () { | ||
const s = new PassThrough(); | ||
|
||
s.end('// custom live-reload'); | ||
|
||
return s; | ||
} | ||
})); | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All the below tests, except maybe one Something like: describe('tiny-lr custom livereload', () => {
before(...)
testLR(this);
// divergent tests here, mainly GET /livereload.js
}); with testLR including all common tests from these two files. and using a param like |
||
describe('GET /', () => { | ||
it('respond with nothing, but respond', function (done) { | ||
request(this.server) | ||
.get('/') | ||
.expect('Content-Type', /json/) | ||
.expect(/\{"tinylr":"Welcome","version":"[\d].[\d].[\d]+"\}/) | ||
.expect(200, done); | ||
}); | ||
|
||
it('unknown route respond with proper 404 and error message', function (done) { | ||
request(this.server) | ||
.get('/whatev') | ||
.expect('Content-Type', /json/) | ||
.expect('{"error":"not_found","reason":"no such route"}') | ||
.expect(404, done); | ||
}); | ||
}); | ||
|
||
describe('GET /changed', () => { | ||
it('with no clients, no files', function (done) { | ||
request(this.server) | ||
.get('/changed') | ||
.expect('Content-Type', /json/) | ||
.expect(/"clients":\[\]/) | ||
.expect(/"files":\[\]/) | ||
.expect(200, done); | ||
}); | ||
|
||
it('with no clients, some files', function (done) { | ||
request(this.server) | ||
.get('/changed?files=gonna.css,test.css,it.css') | ||
.expect('Content-Type', /json/) | ||
.expect('{"clients":[],"files":["gonna.css","test.css","it.css"]}') | ||
.expect(200, done); | ||
}); | ||
}); | ||
|
||
describe('POST /changed', () => { | ||
it('with no clients, no files', function (done) { | ||
request(this.server) | ||
.post('/changed') | ||
.expect('Content-Type', /json/) | ||
.expect(/"clients":\[\]/) | ||
.expect(/"files":\[\]/) | ||
.expect(200, done); | ||
}); | ||
|
||
it('with no clients, some files', function (done) { | ||
const data = { clients: [], files: ['cat.css', 'sed.css', 'ack.js'] }; | ||
|
||
request(this.server) | ||
.post('/changed') | ||
// .type('json') | ||
.send({ files: data.files }) | ||
.expect('Content-Type', /json/) | ||
.expect(JSON.stringify(data)) | ||
.expect(200, done); | ||
}); | ||
}); | ||
|
||
describe('POST /alert', () => { | ||
it('with no clients, no message', function (done) { | ||
const data = { clients: [] }; | ||
request(this.server) | ||
.post('/alert') | ||
.expect('Content-Type', /json/) | ||
.expect(JSON.stringify(data)) | ||
.expect(200, done); | ||
}); | ||
|
||
it('with no clients, some message', function (done) { | ||
const message = 'Hello Client!'; | ||
const data = { clients: [], message: message }; | ||
request(this.server) | ||
.post('/alert') | ||
.send({ message: message }) | ||
.expect('Content-Type', /json/) | ||
.expect(JSON.stringify(data)) | ||
.expect(200, done); | ||
}); | ||
}); | ||
|
||
describe('GET /livereload.js', () => { | ||
it('respond with livereload script', function (done) { | ||
request(this.server) | ||
.get('/livereload.js') | ||
.expect('// custom live-reload') | ||
.expect(200, done); | ||
}); | ||
}); | ||
|
||
describe('GET /kill', () => { | ||
it('shutdown the server', function (done) { | ||
const srv = this.server; | ||
request(srv) | ||
.get('/kill') | ||
.expect(200, err => { | ||
if (err) return done(err); | ||
assert.ok(!srv._handle); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you put
? ...
at the end of the line instead of line breaking before?
?