Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
Liamolucko committed Nov 28, 2023
1 parent f61d27f commit a009c37
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
7 changes: 7 additions & 0 deletions tests/wasm/classes.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,10 @@ exports.js_test_inspectable_classes_can_override_generated_methods = () => {
assert.strictEqual(overridden_inspectable.toString(), 'string was overwritten');
overridden_inspectable.free();
};

exports.js_test_class_defined_in_macro = () => {
const macroClass = new wasm.InsideMacro();
assert.strictEqual(macroClass.a, 3);
macroClass.a = 5;
assert.strictEqual(macroClass.a, 5);
};
25 changes: 25 additions & 0 deletions tests/wasm/classes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ extern "C" {
fn js_test_option_classes();
fn js_test_inspectable_classes();
fn js_test_inspectable_classes_can_override_generated_methods();
fn js_test_class_defined_in_macro();
}

#[wasm_bindgen_test]
Expand Down Expand Up @@ -608,3 +609,27 @@ impl OverriddenInspectable {
String::from("string was overwritten")
}
}

macro_rules! make_struct {
($field:ident) => {
#[wasm_bindgen]
pub struct InsideMacro {
pub $field: u32,
}
};
}

make_struct!(a);

#[wasm_bindgen]
impl InsideMacro {
#[wasm_bindgen(constructor)]
pub fn new() -> Self {
Self { a: 3 }
}
}

#[wasm_bindgen_test]
fn class_defined_in_macro() {
js_test_class_defined_in_macro();
}

0 comments on commit a009c37

Please sign in to comment.