summaryrefslogtreecommitdiff
path: root/node_modules/winston/test/transports/file-test.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2021-12-21 16:50:49 +0100
committerMinteck <contact@minteck.org>2021-12-21 16:50:49 +0100
commit20204baf1807825af4798ad03bfb329e4da05bc5 (patch)
tree1568515fa1e4592206ed5d2327b39e6b443cbd03 /node_modules/winston/test/transports/file-test.js
downloadbingoloto-remote-20204baf1807825af4798ad03bfb329e4da05bc5.tar.gz
bingoloto-remote-20204baf1807825af4798ad03bfb329e4da05bc5.tar.bz2
bingoloto-remote-20204baf1807825af4798ad03bfb329e4da05bc5.zip
Commit
Diffstat (limited to 'node_modules/winston/test/transports/file-test.js')
-rw-r--r--node_modules/winston/test/transports/file-test.js134
1 files changed, 134 insertions, 0 deletions
diff --git a/node_modules/winston/test/transports/file-test.js b/node_modules/winston/test/transports/file-test.js
new file mode 100644
index 0000000..e6f6b3a
--- /dev/null
+++ b/node_modules/winston/test/transports/file-test.js
@@ -0,0 +1,134 @@
+/*
+ * file-test.js: Tests for instances of the File transport
+ *
+ * (C) 2010 Charlie Robbins
+ * MIT LICENSE
+ *
+ */
+
+var path = require('path'),
+ vows = require('vows'),
+ fs = require('fs'),
+ assert = require('assert'),
+ winston = require('../../lib/winston'),
+ stdMocks = require('std-mocks'),
+ helpers = require('../helpers');
+
+var transport = require('./transport');
+
+var stream = fs.createWriteStream(
+ path.join(__dirname, '..', 'fixtures', 'logs', 'testfile.log')
+ ),
+ fileTransport = new (winston.transports.File)({
+ filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testfilename.log')
+ }),
+ failedFileTransport = new (winston.transports.File)({
+ filename: path.join(__dirname, '..', 'fixtures', 'logs', 'dir404', 'testfile.log')
+ }),
+ streamTransport = new (winston.transports.File)({ stream: stream });
+
+vows.describe('winston/transports/file').addBatch({
+ "An instance of the File Transport": {
+ "when passed a valid filename": {
+ "should have the proper methods defined": function () {
+ helpers.assertFile(fileTransport);
+ },
+ "the log() method": helpers.testNpmLevels(fileTransport, "should respond with true", function (ign, err, logged) {
+ assert.isNull(err);
+ assert.isTrue(logged);
+ })
+ },
+ "when passed an invalid filename": {
+ "should have proper methods defined": function () {
+ helpers.assertFile(failedFileTransport);
+ },
+ "should enter noop failed state": function () {
+ helpers.assertFailedTransport(failedFileTransport);
+ }
+ },
+ "when passed a valid file stream": {
+ "should have the proper methods defined": function () {
+ helpers.assertFile(streamTransport);
+ },
+ "the log() method": helpers.testNpmLevels(streamTransport, "should respond with true", function (ign, err, logged) {
+ assert.isNull(err);
+ assert.isTrue(logged);
+ })
+ },
+ "streaming to stdout": {
+ topic: function () {
+ var transport = new (winston.transports.File)({
+ stream: process.stdout, timestamp: false, json: false
+ });
+ stdMocks.use();
+ return transport;
+ },
+ "with showLevel off": {
+ topic: function (stdoutStreamTransport) {
+ stdoutStreamTransport.showLevel = false;
+ stdoutStreamTransport.log('info', '', undefined, this.callback);
+ },
+ "should not have level prepended": function () {
+ var output = stdMocks.flush(),
+ line = output.stdout[0];
+
+ assert.equal(line, '\n');
+ }
+ },
+ // there would be a "with showLevel on" here but I think it's a bug in
+ // this version of vows. ugprading causes even more problems
+ teardown: function() {
+ stdMocks.restore();
+ }
+ }
+ }
+}).addBatch({
+ "These tests have a non-deterministic end": {
+ topic: function () {
+ setTimeout(this.callback, 200);
+ },
+ "and this should be fixed before releasing": function () {
+ assert.isTrue(true);
+ }
+ }
+}).addBatch({
+ "Error object in metadata #610": {
+ topic: function () {
+ var myErr = new Error("foo");
+
+ fileTransport.log('info', 'test message', myErr, this.callback.bind(this, null, myErr));
+ },
+ "should not be modified": function (err, myErr) {
+ assert.equal(myErr.message, "foo");
+ // Not sure if this is the best possible way to check if additional props appeared
+ assert.deepEqual(Object.getOwnPropertyNames(myErr), Object.getOwnPropertyNames(new Error("foo")));
+ }
+ }
+}).addBatch({
+ "Date object in metadata": {
+ topic: function () {
+ var obj = new Date(1000);
+
+ fileTransport.log('info', 'test message', obj, this.callback.bind(this, null, obj));
+ },
+ "should not be modified": function (err, obj) {
+ // Not sure if this is the best possible way to check if additional props appeared
+ assert.deepEqual(Object.getOwnPropertyNames(obj), Object.getOwnPropertyNames(new Date()));
+ }
+ }
+}).addBatch({
+ "Plain object in metadata": {
+ topic: function () {
+ var obj = { message: "foo" };
+
+ fileTransport.log('info', 'test message', obj, this.callback.bind(this, null, obj));
+ },
+ "should not be modified": function (err, obj) {
+ assert.deepEqual(obj, { message: "foo" });
+ }
+ }
+}).addBatch({
+ "An instance of the File Transport": transport(winston.transports.File, {
+ filename: path.join(__dirname, '..', 'fixtures', 'logs', 'testfile.log')
+ })
+}).export(module);