use super::BinderState;
use tsz_parser::parser::ParserState;
#[test]
fn test_namespace_exports_exclude_non_exported_members() {
let source = r"
namespace M {
export class A {}
class B {}
}
";
let mut parser = ParserState::new("test.ts".to_string(), source.to_string());
let root = parser.parse_source_file();
let mut binder = BinderState::new();
binder.bind_source_file(parser.get_arena(), root);
let m_sym_id = binder
.file_locals
.get("M")
.expect("expected namespace symbol for M");
let symbol = binder
.symbols
.get(m_sym_id)
.expect("expected namespace symbol data");
let exports = symbol.exports.as_ref().expect("expected exports table");
assert!(exports.has("A"), "expected A to be exported");
assert!(!exports.has("B"), "expected B to be non-exported");
}