mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-31 09:21:05 +00:00
* Pre-generating web-sys * Fixing build errors * Minor refactor for the unit tests * Changing to generate #[wasm_bindgen} annotations * Fixing code generation * Adding in main bin to wasm-bindgen-webidl * Fixing more problems * Adding in support for unstable APIs * Fixing bug with code generation * More code generation fixes * Improving the webidl program * Removing unnecessary cfg from the generated code * Splitting doc comments onto separate lines * Improving the generation for unstable features * Adding in support for string values in enums * Now runs rustfmt on the mod.rs file * Fixing codegen for constructors * Fixing webidl-tests * Fixing build errors * Another fix for build errors * Renaming typescript_name to typescript_type * Adding in docs for typescript_type * Adding in CI script to verify that web-sys is up to date * Fixing CI script * Fixing CI script * Don't suppress git diff output * Remove duplicate definitions of `Location` Looks to be a preexisting bug in wasm-bindgen? * Regenerate webidl * Try to get the git diff command right * Handle named constructors in WebIDL * Remove stray rustfmt.toml * Add back NamedConstructorBar definition in tests * Run stable rustfmt over everything * Don't run Cargo in a build script Instead refactor things so webidl-tests can use the Rust-code-generation as a library in a build script. Also fixes `cargo fmt` in the repository. * Fixup generated code * Running web-sys checks on stable * Improving the code generation a little * Running rustfmt Co-authored-by: Alex Crichton <alex@alexcrichton.com>
50 lines
1.5 KiB
Rust
50 lines
1.5 KiB
Rust
use crate::generated::*;
|
|
use wasm_bindgen_test::*;
|
|
|
|
#[wasm_bindgen_test]
|
|
fn top_level_enum() {
|
|
let circle = Shape::new(ShapeType::Circle).unwrap();
|
|
let square = Shape::new(ShapeType::Square).unwrap();
|
|
assert!(circle.is_circle());
|
|
assert!(!circle.is_square());
|
|
assert!(square.is_square());
|
|
assert!(!square.is_circle());
|
|
}
|
|
|
|
#[wasm_bindgen_test]
|
|
fn valid_enum_return() {
|
|
let circle = Shape::new(ShapeType::Circle).unwrap();
|
|
let square = Shape::new(ShapeType::Square).unwrap();
|
|
assert!(circle.is_circle());
|
|
assert!(!circle.is_square());
|
|
assert_eq!(circle.get_shape(), ShapeType::Circle);
|
|
assert!(square.is_square());
|
|
assert!(!square.is_circle());
|
|
assert_eq!(square.get_shape(), ShapeType::Square);
|
|
}
|
|
|
|
#[wasm_bindgen_test]
|
|
fn invalid_enum_return() {
|
|
let actually_a_triangle = Shape::triangle();
|
|
assert!(!actually_a_triangle.is_circle());
|
|
assert!(!actually_a_triangle.is_square());
|
|
match actually_a_triangle.get_shape() {
|
|
ShapeType::Circle | ShapeType::Square => assert!(false),
|
|
_ => {} // Success
|
|
};
|
|
}
|
|
|
|
#[wasm_bindgen_test]
|
|
fn read_optional_enum_attribute_none() {
|
|
let shape = Shape::new(ShapeType::Circle).unwrap();
|
|
let shape_type: Option<ShapeType> = shape.shape_type_none();
|
|
assert_eq!(shape_type, None);
|
|
}
|
|
|
|
#[wasm_bindgen_test]
|
|
fn read_optional_enum_attribute_some() {
|
|
let shape = Shape::new(ShapeType::Circle).unwrap();
|
|
let shape_type: Option<ShapeType> = shape.shape_type_some();
|
|
assert_eq!(shape_type, Some(ShapeType::Circle));
|
|
}
|