From 20e9267775c423775412c46423d76abd7251a7f6 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 20 Jul 2018 12:21:41 -0700 Subject: [PATCH] Port `Error` tests to `wasm` --- crates/js-sys/tests/all/Error.rs | 197 ------------------------------ crates/js-sys/tests/all/main.rs | 1 - crates/js-sys/tests/wasm/Error.rs | 37 ++++++ crates/js-sys/tests/wasm/main.rs | 1 + 4 files changed, 38 insertions(+), 198 deletions(-) delete mode 100644 crates/js-sys/tests/all/Error.rs create mode 100644 crates/js-sys/tests/wasm/Error.rs diff --git a/crates/js-sys/tests/all/Error.rs b/crates/js-sys/tests/all/Error.rs deleted file mode 100644 index 0247e41b..00000000 --- a/crates/js-sys/tests/all/Error.rs +++ /dev/null @@ -1,197 +0,0 @@ -#![allow(non_snake_case)] - -use project; - -#[test] -fn new() { - project() - .file("src/lib.rs", r#" - #![feature(use_extern_macros)] - - extern crate wasm_bindgen; - extern crate js_sys; - use wasm_bindgen::prelude::*; - use js_sys::Error; - - #[wasm_bindgen] - pub fn new_error(message: &js_sys::JsString) -> Error { - Error::new(message) - } - "#) - .file("test.js", r#" - import * as assert from "assert"; - import * as wasm from "./out"; - - export function test() { - const message = 'any error message'; - const error = wasm.new_error(message); - - assert.equal(error.message, message); - } - "#) - .test() -} - -#[test] -fn message() { - project() - .file("src/lib.rs", r#" - #![feature(use_extern_macros)] - - extern crate wasm_bindgen; - extern crate js_sys; - use wasm_bindgen::prelude::*; - use js_sys::Error; - - #[wasm_bindgen] - pub fn error_message(this: &Error) -> js_sys::JsString { - this.message() - } - "#) - .file("test.js", r#" - import * as assert from "assert"; - import * as wasm from "./out"; - - export function test() { - const message = 'any error message'; - const error = new Error(message); - - assert.equal(wasm.error_message(error), message); - } - "#) - .test() -} - -#[test] -fn set_message() { - project() - .file("src/lib.rs", r#" - #![feature(use_extern_macros)] - - extern crate wasm_bindgen; - extern crate js_sys; - use wasm_bindgen::prelude::*; - use js_sys::Error; - - #[wasm_bindgen] - pub fn error_set_message(this: &Error, message: &js_sys::JsString) { - this.set_message(message); - } - "#) - .file("test.js", r#" - import * as assert from "assert"; - import * as wasm from "./out"; - - export function test() { - const message = 'any error message'; - const error = new Error(); - wasm.error_set_message(error, message); - - assert.equal(error.message, message); - } - "#) - .test() -} - -#[test] -fn name() { - project() - .file("src/lib.rs", r#" - #![feature(use_extern_macros)] - - extern crate wasm_bindgen; - extern crate js_sys; - use wasm_bindgen::prelude::*; - use js_sys::Error; - - #[wasm_bindgen] - pub fn error_name(this: &Error) -> js_sys::JsString { - this.name() - } - "#) - .file("test.js", r#" - import * as assert from "assert"; - import * as wasm from "./out"; - - export function test() { - const name = 'any error name'; - const error = new Error(); - error.name = name; - - assert.equal(wasm.error_name(error), name); - } - "#) - .test() -} - -#[test] -fn set_name() { - project() - .file("src/lib.rs", r#" - #![feature(use_extern_macros)] - - extern crate wasm_bindgen; - extern crate js_sys; - use wasm_bindgen::prelude::*; - use js_sys::Error; - - #[wasm_bindgen] - pub fn error_set_name(this: &Error, name: &js_sys::JsString) { - this.set_name(name); - } - "#) - .file("test.js", r#" - import * as assert from "assert"; - import * as wasm from "./out"; - - export function test() { - const name = 'any error name'; - const error = new Error(); - wasm.error_set_name(error, name); - - assert.equal(error.name, name); - } - "#) - .test() -} - -#[test] -fn to_string() { - project() - .file("src/lib.rs", r#" - #![feature(use_extern_macros)] - - extern crate wasm_bindgen; - extern crate js_sys; - use wasm_bindgen::prelude::*; - use js_sys::Error; - - #[wasm_bindgen] - pub fn error_to_string(this: &Error) -> js_sys::JsString { - this.to_string() - } - "#) - .file("test.js", r#" - import * as assert from "assert"; - import * as wasm from "./out"; - - export function test() { - const error = new Error('error message 1'); - - assert.equal(wasm.error_to_string(error), 'Error: error message 1'); - - error.name = undefined; - assert.equal(wasm.error_to_string(error), 'Error: error message 1'); - - error.name = 'error_name_1'; - assert.equal(wasm.error_to_string(error), 'error_name_1: error message 1'); - - error.message = undefined; - assert.equal(wasm.error_to_string(error), 'error_name_1'); - - error.name = 'error_name_2'; - assert.equal(wasm.error_to_string(error), 'error_name_2'); - } - "#) - .test() -} diff --git a/crates/js-sys/tests/all/main.rs b/crates/js-sys/tests/all/main.rs index 03ff1dce..69010cac 100644 --- a/crates/js-sys/tests/all/main.rs +++ b/crates/js-sys/tests/all/main.rs @@ -11,7 +11,6 @@ fn project() -> project_builder::Project { // Keep these tests in alphabetical order, just like the imports in `src/js.rs`. mod ArrayIterator; -mod Error; mod Function; mod Generator; mod Intl; diff --git a/crates/js-sys/tests/wasm/Error.rs b/crates/js-sys/tests/wasm/Error.rs new file mode 100644 index 00000000..cde3eb0a --- /dev/null +++ b/crates/js-sys/tests/wasm/Error.rs @@ -0,0 +1,37 @@ +use wasm_bindgen::JsValue; +use wasm_bindgen_test::*; +use js_sys::*; + +#[wasm_bindgen_test] +fn new() { + let error = Error::new(&"some message".into()); + assert_eq!(JsValue::from(error.message()), "some message"); +} + +#[wasm_bindgen_test] +fn set_message() { + let error = Error::new(&"test".into()); + error.set_message(&"another".into()); + assert_eq!(JsValue::from(error.message()), "another"); +} + +#[wasm_bindgen_test] +fn name() { + let error = Error::new(&"test".into()); + assert_eq!(JsValue::from(error.name()), "Error"); +} + +#[wasm_bindgen_test] +fn set_name() { + let error = Error::new(&"test".into()); + error.set_name(&"different".into()); + assert_eq!(JsValue::from(error.name()), "different"); +} + +#[wasm_bindgen_test] +fn to_string() { + let error = Error::new(&"error message 1".into()); + assert_eq!(JsValue::from(error.to_string()), "Error: error message 1"); + error.set_name(&"error_name_1".into()); + assert_eq!(JsValue::from(error.to_string()), "error_name_1: error message 1"); +} diff --git a/crates/js-sys/tests/wasm/main.rs b/crates/js-sys/tests/wasm/main.rs index 741e69af..a24c8c8a 100644 --- a/crates/js-sys/tests/wasm/main.rs +++ b/crates/js-sys/tests/wasm/main.rs @@ -12,3 +12,4 @@ pub mod ArrayIterator; pub mod Boolean; pub mod DataView; pub mod Date; +pub mod Error;