mirror of
https://github.com/danbulant/oxc
synced 2026-05-25 12:51:57 +00:00
47 lines
1.7 KiB
Rust
47 lines
1.7 KiB
Rust
use oxc_allocator::Allocator;
|
|
use oxc_codegen::{CodeGenerator, CodegenOptions, CommentOptions};
|
|
use oxc_parser::Parser;
|
|
use oxc_span::SourceType;
|
|
|
|
pub fn test(source_text: &str, expected: &str) {
|
|
let source_type = SourceType::jsx();
|
|
let allocator = Allocator::default();
|
|
let ret = Parser::new(&allocator, source_text, source_type).parse();
|
|
let result = CodeGenerator::new()
|
|
.enable_comment(
|
|
source_text,
|
|
ret.trivias,
|
|
CommentOptions { preserve_annotate_comments: true },
|
|
)
|
|
.build(&ret.program)
|
|
.source_text;
|
|
assert_eq!(
|
|
result, expected,
|
|
"\nfor source {source_text:?}\nexpect {expected:?}\ngot {result:?}"
|
|
);
|
|
}
|
|
|
|
pub fn test_without_source(source_text: &str, expected: &str) {
|
|
let source_type = SourceType::jsx();
|
|
let allocator = Allocator::default();
|
|
let ret = Parser::new(&allocator, source_text, source_type).parse();
|
|
let result = CodeGenerator::new().build(&ret.program).source_text;
|
|
assert_eq!(
|
|
result, expected,
|
|
"\nfor source {source_text:?}\nexpect {expected:?}\ngot {result:?}\nwithout providing the original code."
|
|
);
|
|
}
|
|
|
|
pub fn test_minify(source_text: &str, expected: &str) {
|
|
let source_type = SourceType::jsx();
|
|
let allocator = Allocator::default();
|
|
let ret = Parser::new(&allocator, source_text, source_type).parse();
|
|
let result = CodeGenerator::new()
|
|
.with_options(CodegenOptions { minify: true, ..CodegenOptions::default() })
|
|
.build(&ret.program)
|
|
.source_text;
|
|
assert_eq!(
|
|
result, expected,
|
|
"\nfor minify source {source_text}\nexpect {expected}\ngot {result:?}"
|
|
);
|
|
}
|