@@ -730,30 +730,74 @@ describe('N3Lexer', function () {
730
730
} ) ;
731
731
732
732
describe ( 'passing data after the stream has been finished' , function ( ) {
733
- var tokens = [ ] , stream = new EventEmitter ( ) , lexer = new N3Lexer ( ) ;
734
- lexer . tokenize ( stream , function ( error , token ) { ! error && tokens . push ( token ) ; } ) ;
735
- stream . emit ( 'data' , '<a> ' ) ;
736
- stream . emit ( 'end' ) ;
737
- stream . emit ( 'data' , '<b> ' ) ;
738
- stream . emit ( 'end' ) ;
733
+ var tokens = [ ] , error ;
734
+ before ( function ( ) {
735
+ var stream = new EventEmitter ( ) , lexer = new N3Lexer ( ) ;
736
+ lexer . tokenize ( stream , function ( err , token ) {
737
+ if ( err )
738
+ error = err ;
739
+ else
740
+ tokens . push ( token ) ;
741
+ } ) ;
742
+ stream . emit ( 'data' , '<a> ' ) ;
743
+ stream . emit ( 'end' ) ;
744
+ stream . emit ( 'data' , '<b> ' ) ;
745
+ stream . emit ( 'end' ) ;
746
+ } ) ;
739
747
740
748
it ( 'parses only the first chunk (plus EOF)' , function ( ) {
741
749
tokens . should . have . length ( 2 ) ;
742
750
} ) ;
751
+
752
+ it ( 'does not emit an error' , function ( ) {
753
+ expect ( error ) . to . not . exist ;
754
+ } ) ;
743
755
} ) ;
744
756
745
- describe ( 'passing data after an error has occurred' , function ( ) {
746
- var tokens = [ ] , stream = new EventEmitter ( ) , lexer = new N3Lexer ( ) ;
747
- lexer . tokenize ( stream , function ( error , token ) { ! error && tokens . push ( token ) ; } ) ;
748
- stream . emit ( 'data' , '<a> ' ) ;
749
- stream . emit ( 'data' , ' error ' ) ;
750
- stream . emit ( 'end' ) ;
751
- stream . emit ( 'data' , '<b> ' ) ;
752
- stream . emit ( 'end' ) ;
757
+ describe ( 'passing data after a syntax error' , function ( ) {
758
+ var tokens = [ ] , error ;
759
+ before ( function ( ) {
760
+ var stream = new EventEmitter ( ) , lexer = new N3Lexer ( ) ;
761
+ lexer . tokenize ( stream , function ( err , token ) {
762
+ if ( err )
763
+ error = err ;
764
+ else
765
+ tokens . push ( token ) ;
766
+ } ) ;
767
+ stream . emit ( 'data' , '<a> ' ) ;
768
+ stream . emit ( 'data' , ' error ' ) ;
769
+ stream . emit ( 'end' ) ;
770
+ stream . emit ( 'data' , '<b> ' ) ;
771
+ stream . emit ( 'end' ) ;
772
+ } ) ;
753
773
754
774
it ( 'parses only the first chunk' , function ( ) {
755
775
tokens . should . have . length ( 1 ) ;
756
776
} ) ;
777
+
778
+ it ( 'emits the error' , function ( ) {
779
+ expect ( error ) . to . exist ;
780
+ expect ( error ) . to . have . property ( 'message' , 'Unexpected "error" on line 1.' ) ;
781
+ } ) ;
782
+ } ) ;
783
+
784
+ describe ( 'when the stream errors' , function ( ) {
785
+ var tokens = [ ] , error ;
786
+ before ( function ( ) {
787
+ var stream = new EventEmitter ( ) , lexer = new N3Lexer ( ) ;
788
+ lexer . tokenize ( stream , function ( err , token ) {
789
+ if ( err )
790
+ error = err ;
791
+ else
792
+ tokens . push ( token ) ;
793
+ } ) ;
794
+ stream . emit ( 'error' , new Error ( 'my error' ) ) ;
795
+ } ) ;
796
+
797
+ it ( 'passes the error' , function ( ) {
798
+ expect ( error ) . to . exist ;
799
+ expect ( error ) . to . have . property ( 'message' , 'my error' ) ;
800
+ } ) ;
757
801
} ) ;
758
802
759
803
describe ( 'called with a string and without callback' , function ( ) {
0 commit comments