Skip to content

Commit

Permalink
Merge pull request #1296 from rustwasm/term-color-tests
Browse files Browse the repository at this point in the history
Revert "Respect package.readme in Cargo.toml"
  • Loading branch information
drager authored Jun 11, 2023
2 parents 5293380 + 673bc29 commit b9faed7
Show file tree
Hide file tree
Showing 8 changed files with 18 additions and 113 deletions.
4 changes: 2 additions & 2 deletions src/command/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ use crate::wasm_opt;
use crate::PBAR;
use anyhow::{anyhow, bail, Error, Result};
use binary_install::Cache;
use clap::Args;
use log::info;
use std::fmt;
use std::path::PathBuf;
use std::str::FromStr;
use std::time::Instant;
use clap::{Args};

/// Everything required to configure and run the `wasm-pack build` command.
#[allow(missing_docs)]
Expand Down Expand Up @@ -376,7 +376,7 @@ impl Build {

fn step_copy_readme(&mut self) -> Result<()> {
info!("Copying readme from crate...");
readme::copy_from_crate(&self.crate_data, &self.crate_path, &self.out_dir)?;
readme::copy_from_crate(&self.crate_path, &self.out_dir)?;
info!("Copied readme from crate to {:#?}.", &self.out_dir);
Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions src/command/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ use self::publish::{access::Access, publish};
use self::test::{Test, TestOptions};
use crate::install::InstallMode;
use anyhow::Result;
use clap::builder::ValueParser;
use clap::Subcommand;
use log::info;
use std::path::PathBuf;
use clap::Subcommand;
use clap::builder::ValueParser;
/// The various kinds of commands that `wasm-pack` can execute.
#[derive(Debug, Subcommand)]
pub enum Command {
Expand Down
4 changes: 2 additions & 2 deletions src/command/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ use crate::manifest;
use crate::test::{self, webdriver};
use anyhow::{bail, Result};
use binary_install::Cache;
use clap::builder::ValueParser;
use clap::Args;
use console::style;
use log::info;
use std::path::PathBuf;
use std::str::FromStr;
use std::time::Instant;
use clap::Args;
use clap::builder::ValueParser;

#[derive(Debug, Default, Args)]
#[command(allow_hyphen_values = true, trailing_var_arg = true)]
Expand Down
8 changes: 4 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ extern crate strsim;
extern crate which;
#[macro_use]
extern crate serde_derive;
extern crate serde_ignored;
extern crate serde_json;
extern crate binary_install;
extern crate chrono;
extern crate dialoguer;
extern crate log;
extern crate serde_ignored;
extern crate serde_json;
extern crate toml;
extern crate walkdir;

Expand All @@ -41,9 +41,9 @@ pub mod target;
pub mod test;
pub mod wasm_opt;

use clap::Parser;
use clap::builder::ArgAction;
use crate::progressbar::{LogLevel, ProgressOutput};
use clap::builder::ArgAction;
use clap::Parser;

/// The global progress bar and user-facing message output.
pub static PBAR: ProgressOutput = ProgressOutput::new();
Expand Down
4 changes: 2 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

extern crate anyhow;
extern crate atty;
extern crate clap;
extern crate env_logger;
extern crate human_panic;
extern crate log;
extern crate clap;
extern crate wasm_pack;
extern crate which;

use anyhow::Result;
use clap::Parser;
use std::env;
use std::panic;
use std::sync::mpsc;
use std::thread;
use clap::Parser;
use wasm_pack::{
build::{self, WasmPackVersion},
command::run_wasm_pack,
Expand Down
8 changes: 0 additions & 8 deletions src/manifest/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -541,14 +541,6 @@ impl CrateData {
}
}

/// Gets the optional path to the readme, or None if disabled.
pub fn crate_readme(&self) -> Option<String> {
self.pkg()
.readme
.clone()
.map(|readme_file| readme_file.into_string())
}

/// Get the license for the crate at the given path.
pub fn crate_license(&self) -> &Option<String> {
&self.pkg().license
Expand Down
9 changes: 2 additions & 7 deletions src/readme.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ use anyhow::{Context, Result};
use std::fs;
use std::path::Path;

use crate::manifest::CrateData;
use crate::PBAR;

/// Copy the crate's README into the `pkg` directory.
pub fn copy_from_crate(crate_data: &CrateData, path: &Path, out_dir: &Path) -> Result<()> {
pub fn copy_from_crate(path: &Path, out_dir: &Path) -> Result<()> {
assert!(
fs::metadata(path).ok().map_or(false, |m| m.is_dir()),
"crate directory should exist"
Expand All @@ -18,11 +17,7 @@ pub fn copy_from_crate(crate_data: &CrateData, path: &Path, out_dir: &Path) -> R
"crate's pkg directory should exist"
);

let crate_readme_path = match crate_data.crate_readme() {
None => return Ok(()),
Some(readme_path) => path.join(readme_path),
};

let crate_readme_path = path.join("README.md");
let new_readme_path = out_dir.join("README.md");
if crate_readme_path.exists() {
fs::copy(&crate_readme_path, &new_readme_path).context("failed to copy README")?;
Expand Down
90 changes: 4 additions & 86 deletions tests/all/readme.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,15 @@ 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());
assert!(readme::copy_from_crate(&fixture.path, &out_dir).is_ok());

let crate_readme_path = fixture.path.join("README.md");
let pkg_readme_path = out_dir.join("README.md");
Expand All @@ -36,51 +32,12 @@ fn it_copies_a_readme_default_path() {

#[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 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 = crate_docs_dir.join("README.md");
assert!(readme::copy_from_crate(&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 '{}'",
Expand All @@ -94,42 +51,3 @@ fn it_copies_a_readme_provided_path() {
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());
}

0 comments on commit b9faed7

Please sign in to comment.