Skip to content

Commit df39beb

Browse files
committed
more coverage
1 parent 9202b37 commit df39beb

File tree

1 file changed

+77
-9
lines changed

1 file changed

+77
-9
lines changed

src/token.rs

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -506,26 +506,94 @@ mod tests {
506506
assert_eq!(Token::from_encoded("~0~1").unwrap().encoded(), "~0~1");
507507
let t = Token::from_encoded("a~1b").unwrap();
508508
assert_eq!(t.decoded(), "a/b");
509+
510+
let sub = String::from("a/b");
511+
let err = Token::from_encoded(&sub).unwrap_err();
512+
let labels: Vec<_> = err.labels(&sub).unwrap().into_iter().collect();
513+
assert_eq!(labels, vec![Label::new("invalid character".into(), 1, 1)]);
514+
let err = err.into_report(sub);
515+
#[cfg(feature = "miette")]
516+
{
517+
let labels: Vec<_> = miette::Diagnostic::labels(&err)
518+
.unwrap()
519+
.into_iter()
520+
.collect();
521+
assert_eq!(
522+
labels,
523+
vec![miette::LabeledSpan::new(
524+
Some("invalid character".into()),
525+
1,
526+
1
527+
)]
528+
);
529+
}
530+
let (err, _) = err.decompose();
509531
assert_eq!(
510-
Token::from_encoded("a/b"),
511-
Err(EncodingError {
532+
err,
533+
EncodingError {
512534
offset: 1,
513535
source: InvalidEncoding::Slash
514-
})
536+
}
515537
);
538+
539+
let sub = String::from("a~a");
540+
let err = Token::from_encoded(&sub).unwrap_err();
541+
let labels: Vec<_> = err.labels(&sub).unwrap().into_iter().collect();
542+
assert_eq!(labels, vec![Label::new("must be 0 or 1".into(), 2, 1)]);
543+
let err = err.into_report(sub);
544+
#[cfg(feature = "miette")]
545+
{
546+
let labels: Vec<_> = miette::Diagnostic::labels(&err)
547+
.unwrap()
548+
.into_iter()
549+
.collect();
550+
assert_eq!(
551+
labels,
552+
vec![miette::LabeledSpan::new(
553+
Some("must be 0 or 1".into()),
554+
2,
555+
1
556+
)]
557+
);
558+
}
559+
let (err, _) = err.decompose();
516560
assert_eq!(
517-
Token::from_encoded("a~a"),
518-
Err(EncodingError {
561+
err,
562+
EncodingError {
519563
offset: 2,
520564
source: InvalidEncoding::Tilde
521-
})
565+
}
522566
);
567+
let sub = String::from("a~");
568+
let err = Token::from_encoded(&sub).unwrap_err();
569+
let labels: Vec<_> = err.labels(&sub).unwrap().into_iter().collect();
523570
assert_eq!(
524-
Token::from_encoded("a~"),
525-
Err(EncodingError {
571+
labels,
572+
vec![Label::new("incomplete escape sequence".into(), 1, 1)]
573+
);
574+
let err = err.into_report(sub);
575+
#[cfg(feature = "miette")]
576+
{
577+
let labels: Vec<_> = miette::Diagnostic::labels(&err)
578+
.unwrap()
579+
.into_iter()
580+
.collect();
581+
assert_eq!(
582+
labels,
583+
vec![miette::LabeledSpan::new(
584+
Some("incomplete escape sequence".into()),
585+
1,
586+
1
587+
)]
588+
);
589+
}
590+
let (err, _) = err.decompose();
591+
assert_eq!(
592+
err,
593+
EncodingError {
526594
offset: 2,
527595
source: InvalidEncoding::Tilde
528-
})
596+
}
529597
);
530598
}
531599

0 commit comments

Comments
 (0)