fork of https://github.com/rustwasm/wasm-pack for the needs of NextGraph.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Rafael Beckel ad86c68093 removes unused lines from fixture 11 months ago
..
utils removes unused lines from fixture 11 months ago
build.rs implements custom build profile 11 months ago
download.rs test: Bump version for wasm-bindgen 1 year ago
generate.rs Update to Rust 2021 3 years ago
license.rs Update to Rust 2021 3 years ago
lockfile.rs Update to Rust 2021 3 years ago
log_level.rs test: accept new finish message 1 year ago
main.rs update to clap 4 from structopt 2 years ago
manifest.rs Merge branch 'master' into esm-type-and-main-in-package-json 2 years ago
readme.rs Respect package.readme in Cargo.toml 2 years ago
stamps.rs fix(command_test): stamps.rs check driver once per day, update RELEASE_CHECKLIST 6 years ago
test.rs Update to Rust 2021 3 years ago
wasm_opt.rs Update to Rust 2021 3 years ago
webdriver.rs feat(webdriver): support geckodriver for `linux-aarch64` 1 year ago

readme.rs

extern crate anyhow;
extern crate wasm_pack;

use std::fs;

use crate::utils::{self, fixture};
use assert_cmd::prelude::*;
use predicates::boolean::PredicateBooleanExt;
use wasm_pack::manifest::CrateData;
use wasm_pack::readme;

#[test]
fn it_copies_a_readme_default_path() {
let fixture = fixture::js_hello_world();
let out_dir = fixture.path.join("pkg");
fs::create_dir(&out_dir).expect("should create pkg directory OK");
let crate_data = CrateData::new(&fixture.path, None).unwrap();

assert!(readme::copy_from_crate(&crate_data, &fixture.path, &out_dir).is_ok());

let crate_readme_path = fixture.path.join("README.md");
let pkg_readme_path = out_dir.join("README.md");
println!(
"wasm-pack: should have copied README.md from '{}' to '{}'",
crate_readme_path.display(),
pkg_readme_path.display()
);
assert!(fs::metadata(&crate_readme_path).is_ok());

assert!(fs::metadata(&pkg_readme_path).is_ok());

let crate_readme = utils::file::read_file(&crate_readme_path).unwrap();
let pkg_readme = utils::file::read_file(&pkg_readme_path).unwrap();
assert_eq!(crate_readme, pkg_readme);
}

#[test]
fn it_copies_a_readme_provided_path() {
let fixture = fixture::Fixture::new();
fixture
.hello_world_src_lib()
.file(
"Cargo.toml",
r#"
[package]
authors = ["The wasm-pack developers"]
description = "so awesome rust+wasm package"
license = "WTFPL"
name = "js-hello-world"
readme = "docs/README.md"
repository = "https://github.com/rustwasm/wasm-pack.git"
version = "0.1.0"

[lib]
crate-type = ["cdylib"]

[dependencies]
# Note that this uses and `=` dependency because there are
# various tests which assert that the version of wasm
# bindgen downloaded is what we expect, and if `=` is
# removed then it will download whatever the newest version
# of wasm-bindgen is which may not be what's listed here.
wasm-bindgen = "=0.2.74"

[dev-dependencies]
wasm-bindgen-test = "0.3"
"#,
)
.file(
"docs/README.md",
r#"
# Fixture!
> an example rust -> wasm project
"#,
);

let crate_docs_dir = fixture.path.join("docs");
let out_dir = fixture.path.join("pkg");
fs::create_dir(&out_dir).expect("should create pkg directory OK");
let crate_data = CrateData::new(&fixture.path, None).unwrap();

assert!(readme::copy_from_crate(&crate_data, &fixture.path, &out_dir).is_ok());
let crate_readme_path = crate_docs_dir.join("README.md");
let pkg_readme_path = out_dir.join("README.md");
println!(
"wasm-pack: should have copied README.md from '{}' to '{}'",
crate_readme_path.display(),
pkg_readme_path.display()
);
assert!(fs::metadata(&crate_readme_path).is_ok());
assert!(fs::metadata(&pkg_readme_path).is_ok());

let crate_readme = utils::file::read_file(&crate_readme_path).unwrap();
let pkg_readme = utils::file::read_file(&pkg_readme_path).unwrap();
assert_eq!(crate_readme, pkg_readme);
}

#[test]
fn it_ignores_a_disabled_readme() {
let fixture = fixture::Fixture::new();
fixture
.hello_world_src_lib()
.file(
"Cargo.toml",
r#"
[package]
authors = ["The wasm-pack developers"]
description = "so awesome rust+wasm package"
name = "js-hello-world"
readme = false
repository = "https://github.com/rustwasm/wasm-pack.git"
version = "0.1.0"

[lib]
crate-type = ["cdylib"]

[dependencies]
# Note that this uses and `=` dependency because there are
# various tests which assert that the version of wasm
# bindgen downloaded is what we expect, and if `=` is
# removed then it will download whatever the newest version
# of wasm-bindgen is which may not be what's listed here.
wasm-bindgen = "=0.2.74"

[dev-dependencies]
wasm-bindgen-test = "0.3"
"#,
)
.license()
.wasm_pack()
.arg("build")
.assert()
.success()
.stderr(predicates::str::contains("origin crate has no README").not());
}