Skip to content

Commit

Permalink
Merge pull request #1753 from charlespierce/const_borrows
Browse files Browse the repository at this point in the history
Update cli_platform tests to use 'const' correctly
  • Loading branch information
chriskrycho committed May 14, 2024
2 parents 08219c5 + c5ad999 commit 2d899f9
Showing 1 changed file with 53 additions and 36 deletions.
89 changes: 53 additions & 36 deletions crates/volta-core/src/platform/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,28 @@ mod inherit_option {

mod cli_platform {
use node_semver::Version;
use once_cell::unsync::Lazy;

const NODE_VERSION: Lazy<Version> = Lazy::new(|| Version::from((12, 14, 1)));
const NPM_VERSION: Lazy<Version> = Lazy::new(|| Version::from((6, 13, 2)));
const YARN_VERSION: Lazy<Version> = Lazy::new(|| Version::from((1, 17, 0)));
const NODE_VERSION: Version = Version {
major: 12,
minor: 14,
patch: 1,
build: Vec::new(),
pre_release: Vec::new(),
};
const NPM_VERSION: Version = Version {
major: 6,
minor: 13,
patch: 2,
build: Vec::new(),
pre_release: Vec::new(),
};
const YARN_VERSION: Version = Version {
major: 1,
minor: 17,
patch: 0,
build: Vec::new(),
pre_release: Vec::new(),
};

mod merge {
use super::super::super::*;
Expand All @@ -228,7 +245,7 @@ mod cli_platform {
#[test]
fn uses_node() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
Expand All @@ -243,7 +260,7 @@ mod cli_platform {

let merged = test.merge(base);

assert_eq!(merged.node.value, NODE_VERSION.clone());
assert_eq!(merged.node.value, NODE_VERSION);
assert_eq!(merged.node.source, Source::CommandLine);
}

Expand All @@ -257,23 +274,23 @@ mod cli_platform {
};

let base = Platform {
node: Sourced::with_default(NODE_VERSION.clone()),
node: Sourced::with_default(NODE_VERSION),
npm: None,
pnpm: None,
yarn: None,
};

let merged = test.merge(base);

assert_eq!(merged.node.value, NODE_VERSION.clone());
assert_eq!(merged.node.value, NODE_VERSION);
assert_eq!(merged.node.source, Source::Default);
}

#[test]
fn uses_npm() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
npm: InheritOption::Some(NPM_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::Some(NPM_VERSION),
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
};
Expand All @@ -288,45 +305,45 @@ mod cli_platform {
let merged = test.merge(base);

let merged_npm = merged.npm.unwrap();
assert_eq!(merged_npm.value, NPM_VERSION.clone());
assert_eq!(merged_npm.value, NPM_VERSION);
assert_eq!(merged_npm.source, Source::CommandLine);
}

#[test]
fn inherits_npm() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::Inherit,
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
};

let base = Platform {
node: Sourced::with_default(Version::from((10, 10, 10))),
npm: Some(Sourced::with_default(NPM_VERSION.clone())),
npm: Some(Sourced::with_default(NPM_VERSION)),
pnpm: None,
yarn: None,
};

let merged = test.merge(base);

let merged_npm = merged.npm.unwrap();
assert_eq!(merged_npm.value, NPM_VERSION.clone());
assert_eq!(merged_npm.value, NPM_VERSION);
assert_eq!(merged_npm.source, Source::Default);
}

#[test]
fn none_does_not_inherit_npm() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::None,
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
};

let base = Platform {
node: Sourced::with_default(Version::from((10, 10, 10))),
npm: Some(Sourced::with_default(NPM_VERSION.clone())),
npm: Some(Sourced::with_default(NPM_VERSION)),
pnpm: None,
yarn: None,
};
Expand All @@ -339,10 +356,10 @@ mod cli_platform {
#[test]
fn uses_yarn() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::Some(YARN_VERSION.clone()),
yarn: InheritOption::Some(YARN_VERSION),
};

let base = Platform {
Expand All @@ -355,14 +372,14 @@ mod cli_platform {
let merged = test.merge(base);

let merged_yarn = merged.yarn.unwrap();
assert_eq!(merged_yarn.value, YARN_VERSION.clone());
assert_eq!(merged_yarn.value, YARN_VERSION);
assert_eq!(merged_yarn.source, Source::CommandLine);
}

#[test]
fn inherits_yarn() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::Inherit,
Expand All @@ -372,20 +389,20 @@ mod cli_platform {
node: Sourced::with_default(Version::from((10, 10, 10))),
npm: None,
pnpm: None,
yarn: Some(Sourced::with_default(YARN_VERSION.clone())),
yarn: Some(Sourced::with_default(YARN_VERSION)),
};

let merged = test.merge(base);

let merged_yarn = merged.yarn.unwrap();
assert_eq!(merged_yarn.value, YARN_VERSION.clone());
assert_eq!(merged_yarn.value, YARN_VERSION);
assert_eq!(merged_yarn.source, Source::Default);
}

#[test]
fn none_does_not_inherit_yarn() {
let test = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::None,
Expand All @@ -395,7 +412,7 @@ mod cli_platform {
node: Sourced::with_default(Version::from((10, 10, 10))),
npm: None,
pnpm: None,
yarn: Some(Sourced::with_default(YARN_VERSION.clone())),
yarn: Some(Sourced::with_default(YARN_VERSION)),
};

let merged = test.merge(base);
Expand Down Expand Up @@ -425,7 +442,7 @@ mod cli_platform {
#[test]
fn uses_cli_node() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
Expand All @@ -434,30 +451,30 @@ mod cli_platform {
let transformed: Option<Platform> = cli.into();

let node = transformed.unwrap().node;
assert_eq!(node.value, NODE_VERSION.clone());
assert_eq!(node.value, NODE_VERSION);
assert_eq!(node.source, Source::CommandLine);
}

#[test]
fn uses_cli_npm() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
npm: InheritOption::Some(NPM_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::Some(NPM_VERSION),
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
};

let transformed: Option<Platform> = cli.into();

let npm = transformed.unwrap().npm.unwrap();
assert_eq!(npm.value, NPM_VERSION.clone());
assert_eq!(npm.value, NPM_VERSION);
assert_eq!(npm.source, Source::CommandLine);
}

#[test]
fn no_npm() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::None,
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
Expand All @@ -471,7 +488,7 @@ mod cli_platform {
#[test]
fn inherit_npm_becomes_none() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::Inherit,
pnpm: InheritOption::default(),
yarn: InheritOption::default(),
Expand All @@ -485,23 +502,23 @@ mod cli_platform {
#[test]
fn uses_cli_yarn() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::Some(YARN_VERSION.clone()),
yarn: InheritOption::Some(YARN_VERSION),
};

let transformed: Option<Platform> = cli.into();

let yarn = transformed.unwrap().yarn.unwrap();
assert_eq!(yarn.value, YARN_VERSION.clone());
assert_eq!(yarn.value, YARN_VERSION);
assert_eq!(yarn.source, Source::CommandLine);
}

#[test]
fn no_yarn() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::None,
Expand All @@ -515,7 +532,7 @@ mod cli_platform {
#[test]
fn inherit_yarn_becomes_none() {
let cli = CliPlatform {
node: Some(NODE_VERSION.clone()),
node: Some(NODE_VERSION),
npm: InheritOption::default(),
pnpm: InheritOption::default(),
yarn: InheritOption::Inherit,
Expand Down

0 comments on commit 2d899f9

Please sign in to comment.