use crate::ByteSpan;
use crate::token::GraphQLToken;
use crate::token::GraphQLTokenKind;
#[test]
fn graphql_token_new_creates_empty_trivia() {
let span = ByteSpan::new(0, 3);
let token = GraphQLToken::new(
GraphQLTokenKind::name_owned("foo".to_string()),
span,
);
assert!(matches!(token.kind, GraphQLTokenKind::Name(_)));
assert_eq!(token.span, span);
assert!(
token.preceding_trivia.is_empty(),
"new() should create token with empty preceding_trivia"
);
}
#[test]
fn graphql_token_new_various_kinds() {
let span = ByteSpan::new(0, 1);
let token = GraphQLToken::new(GraphQLTokenKind::Bang, span);
assert!(matches!(token.kind, GraphQLTokenKind::Bang));
assert!(token.preceding_trivia.is_empty());
let token = GraphQLToken::new(GraphQLTokenKind::True, span);
assert!(matches!(token.kind, GraphQLTokenKind::True));
assert!(token.preceding_trivia.is_empty());
let token = GraphQLToken::new(GraphQLTokenKind::Eof, span);
assert!(matches!(token.kind, GraphQLTokenKind::Eof));
assert!(token.preceding_trivia.is_empty());
}
#[test]
fn graphql_token_preserves_span() {
let span = ByteSpan::new(100, 105);
let token = GraphQLToken::new(
GraphQLTokenKind::name_owned("hello".to_string()),
span,
);
assert_eq!(token.span.start, 100);
assert_eq!(token.span.end, 105);
}