Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

split takes a mapper function.

  • Loading branch information...
commit 8b6462488901228ee6e50914df48db607fb0ef26 1 parent ab37c04
@dominictarr authored
Showing with 39 additions and 1 deletion.
  1. +39 −1 test/split.asynct.js
View
40 test/split.asynct.js
@@ -7,7 +7,7 @@ var es = require('event-stream')
, Stream = require('stream').Stream
, spec = require('stream-spec')
-exports ['es.split() works like String#split'] = function (test) {
+exports ['split() works like String#split'] = function (test) {
var readme = join(__filename)
, expected = fs.readFileSync(readme, 'utf-8').split('\n')
, cs = split()
@@ -45,3 +45,41 @@ exports ['es.split() works like String#split'] = function (test) {
}
+exports ['split() takes mapper function'] = function (test) {
+ var readme = join(__filename)
+ , expected = fs.readFileSync(readme, 'utf-8').split('\n')
+ , cs = split(function (line) { return line.toUpperCase() })
+ , actual = []
+ , ended = false
+ , x = spec(cs).through()
+
+ var a = new Stream ()
+
+ a.write = function (l) {
+ actual.push(l.trim())
+ }
+ a.end = function () {
+
+ ended = true
+ expected.forEach(function (v,k) {
+ //String.split will append an empty string ''
+ //if the string ends in a split pattern.
+ //es.split doesn't which was breaking this test.
+ //clearly, appending the empty string is correct.
+ //tests are passing though. which is the current job.
+ if(v)
+ it(actual[k]).equal(v.trim().toUpperCase())
+ })
+ //give the stream time to close
+ process.nextTick(function () {
+ test.done()
+ x.validate()
+ })
+ }
+ a.writable = true
+
+ fs.createReadStream(readme, {flags: 'r'}).pipe(cs)
+ cs.pipe(a)
+
+}
+
Please sign in to comment.
Something went wrong with that request. Please try again.