Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions stephen_schroeder/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.git
node_modules
DS_Store
log**
19 changes: 0 additions & 19 deletions stephen_schroeder/client_server.js

This file was deleted.

2 changes: 1 addition & 1 deletion stephen_schroeder/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ gulp.task('test:mocha', () => {
});

gulp.task('lint:tests', () => {
return gulp.src('./test/**/*test.js')
return gulp.src('./test/*.js')
.pipe(eslint())
.pipe(eslint.format());
});
Expand Down
4 changes: 3 additions & 1 deletion stephen_schroeder/index.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
module.exports = require(__dirname + '/client_server');
const server = require(__dirname + '/lib/server');

server.start();
6 changes: 6 additions & 0 deletions stephen_schroeder/lib/identifier.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
exports.generate = function() {
var timestamp = (new Date()).toString();
var dateString = timestamp.substring(4, 15).replace(/\s/g, '-');
var timeString = timestamp.substring(16, 24).replace(/:/g, '');
return '/log_' + dateString + '_' + timeString + '.txt';
};
17 changes: 17 additions & 0 deletions stephen_schroeder/lib/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const net = require('net');
const fs = require('fs');
const identifier = require(__dirname + '/identifier');

var start = exports.start = (filepath) => {
var server = net.createServer((socket) => {
filepath = filepath || __dirname + '/..' + identifier.generate();
var fileStream = fs.createWriteStream(filepath);
socket.pipe(fileStream);
socket.write('Request received');
socket.end();
console.log('TCP request logged in ' + filepath);
});

server.listen(3000, () => {console.log('server running on port 3000');
});
};
3 changes: 1 addition & 2 deletions stephen_schroeder/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
"eslint": "^2.10.2",
"gulp": "^3.9.1",
"gulp-eslint": "^2.0.0",
"gulp-mocha": "^2.2.0",
"mocha": "^2.4.5"
"gulp-mocha": "^2.2.0"
}
}
20 changes: 0 additions & 20 deletions stephen_schroeder/server.js

This file was deleted.

20 changes: 20 additions & 0 deletions stephen_schroeder/test/id_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const expect = require('chai').expect;
const identifier = require(__dirname + '/../lib/identifier');

describe('Identifier generate function', () => {
it('should return a filename with .txt extension', () => {
var filename = identifier.generate();
expect(typeof filename).to.eql('string');
expect(filename.startsWith('/log_')).to.eql(true);
expect(filename.endsWith('.txt')).to.eql(true);
});

it('should return a unique filename', (done) => {
var filename1 = identifier.generate();
setTimeout(() => {
var filename2 = identifier.generate();
expect(filename1).to.not.eql(filename2);
done();
}, 1500);
});
});
36 changes: 36 additions & 0 deletions stephen_schroeder/test/server_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const expect = require('chai').expect;
const net = require('net');
const fs = require('fs');
const server = require(__dirname + '/../lib/server');

describe('TCP server', () => {
var requestString = 'Hello World\r\n';
var filepath = __dirname + '/../log_test.txt';

before((done) => {
server.start(filepath);
var client = net.createConnection(3000, () => {
console.log('Connected to server');
client.write(requestString);
done();
});
});

it('should write request to newly created text file', (done) => {
fs.readFile(filepath, (err, data) => {
if (err) {
expect(true).to.eql(false);
console.log(err);
return done();
}
expect(data.toString()).to.eql(requestString);
done();
});
});

after(() => {
fs.unlink(filepath, (err) => {
if (err) console.log(err);
});
});
});
12 changes: 0 additions & 12 deletions stephen_schroeder/test/tests.js

This file was deleted.