| use super::*; |
| |
| #[test] |
| fn mock_simple_violation_cur_exemptions() { |
| // (Fail) All marked 'exemptions' but a 'violation' entry matches a current version. |
| |
| let _enter = TEST_RUNTIME.enter(); |
| let mock = MockMetadata::simple(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = files_inited(&metadata); |
| |
| let violation_ver = VersionReq::parse(&format!("={DEFAULT_VER}")).unwrap(); |
| audits |
| .audits |
| .entry("third-party1".to_string()) |
| .or_default() |
| .push(violation(violation_ver, "weak-reviewed")); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("mock-simple-violation-cur-unaudited", metadata, store); |
| } |
| |
| #[test] |
| fn mock_simple_violation_cur_full_audit() { |
| // (Fail) All full audited but a 'violation' entry matches a current version. |
| |
| let _enter = TEST_RUNTIME.enter(); |
| let mock = MockMetadata::simple(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = files_full_audited(&metadata); |
| |
| let violation = VersionReq::parse(&format!("={DEFAULT_VER}")).unwrap(); |
| audits.audits.insert( |
| "third-party1".to_string(), |
| vec![ |
| violation_hard(violation), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_DEPLOY), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("mock-simple-violation-cur-full-audit", metadata, store); |
| } |
| |
| #[test] |
| fn mock_simple_violation_delta() { |
| // (Fail) A 'violation' matches a delta but not the cur version |
| |
| let _enter = TEST_RUNTIME.enter(); |
| let mock = MockMetadata::simple(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = files_full_audited(&metadata); |
| |
| let violation = VersionReq::parse("=5.0.0").unwrap(); |
| audits.audits.insert( |
| "third-party1".to_string(), |
| vec![ |
| violation_hard(violation), |
| full_audit(ver(3), SAFE_TO_DEPLOY), |
| delta_audit(ver(3), ver(5), SAFE_TO_DEPLOY), |
| delta_audit(ver(5), ver(DEFAULT_VER), SAFE_TO_DEPLOY), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("mock-simple-violation-delta", metadata, store); |
| } |
| |
| #[test] |
| fn mock_simple_violation_full_audit() { |
| // (Fail) A 'violation' matches a full audit but not the cur version |
| |
| let _enter = TEST_RUNTIME.enter(); |
| let mock = MockMetadata::simple(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = files_full_audited(&metadata); |
| |
| let violation = VersionReq::parse("=3.0.0").unwrap(); |
| audits.audits.insert( |
| "third-party1".to_string(), |
| vec![ |
| violation_hard(violation), |
| full_audit(ver(3), SAFE_TO_DEPLOY), |
| delta_audit(ver(3), ver(5), SAFE_TO_DEPLOY), |
| delta_audit(ver(5), ver(DEFAULT_VER), SAFE_TO_DEPLOY), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("mock-simple-violation-full-audit", metadata, store); |
| } |
| |
| #[test] |
| fn mock_simple_violation_wildcard() { |
| // (Fail) A 'violation' matches a full audit but not the cur version |
| |
| let _enter = TEST_RUNTIME.enter(); |
| let mock = MockMetadata::simple(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = files_full_audited(&metadata); |
| |
| let violation = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "third-party1".to_string(), |
| vec![ |
| violation_hard(violation), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_DEPLOY), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("mock-simple-violation-wildcard", metadata, store); |
| } |
| |
| #[test] |
| fn builtin_simple_deps_violation_dodged() { |
| // (Pass) A 'violation' matches a full audit but we only audit for weaker so it's fine |
| |
| let mock = MockMetadata::simple_deps(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = builtin_files_full_audited(&metadata); |
| |
| let violation_ver = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "dev".to_string(), |
| vec![ |
| violation(violation_ver, SAFE_TO_DEPLOY), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_RUN), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("builtin-simple-deps-violation-dodged", metadata, store); |
| } |
| |
| #[test] |
| fn builtin_simple_deps_violation_low_hit() { |
| // (Fail) A 'violation' matches a full audit and both are safe-to-run |
| |
| let mock = MockMetadata::simple_deps(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = builtin_files_full_audited(&metadata); |
| |
| let violation_ver = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "dev".to_string(), |
| vec![ |
| violation(violation_ver, SAFE_TO_RUN), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_RUN), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("builtin-simple-deps-violation-low-hit", metadata, store); |
| } |
| |
| #[test] |
| fn builtin_simple_deps_violation_high_hit() { |
| // (Fail) A 'violation' matches a full audit and both are safe-to-deploy |
| |
| let mock = MockMetadata::simple_deps(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = builtin_files_full_audited(&metadata); |
| |
| let violation_ver = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "dev".to_string(), |
| vec![ |
| violation(violation_ver, SAFE_TO_DEPLOY), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_DEPLOY), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("builtin-simple-deps-violation-high-hit", metadata, store); |
| } |
| |
| #[test] |
| fn builtin_simple_deps_violation_imply_hit() { |
| // (Fail) A safe-to-run 'violation' matches a safe-to-deploy full audit |
| |
| let mock = MockMetadata::simple_deps(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = builtin_files_full_audited(&metadata); |
| |
| let violation_ver = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "dev".to_string(), |
| vec![ |
| violation(violation_ver, SAFE_TO_RUN), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_DEPLOY), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("builtin-simple-deps-violation-imply-hit", metadata, store); |
| } |
| |
| #[test] |
| fn builtin_simple_deps_violation_redundant_low_hit() { |
| // (Fail) A [safe-to-run, safe-to-deploy] 'violation' matches a safe-to-run full audit |
| |
| let mock = MockMetadata::simple_deps(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = builtin_files_full_audited(&metadata); |
| |
| let violation_ver = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "dev".to_string(), |
| vec![ |
| violation_m(violation_ver, [SAFE_TO_RUN, SAFE_TO_DEPLOY]), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_RUN), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!( |
| "builtin-simple-deps-violation-redundant-low-hit", |
| metadata, |
| store |
| ); |
| } |
| |
| #[test] |
| fn mock_simple_violation_hit_with_extra_junk() { |
| // (Fail) A [safe-to-run, fuzzed] 'violation' matches a safe-to-run full audit |
| |
| let mock = MockMetadata::simple(); |
| |
| let metadata = mock.metadata(); |
| let (config, mut audits, imports) = files_full_audited(&metadata); |
| |
| let violation_ver = VersionReq::parse("*").unwrap(); |
| audits.audits.insert( |
| "third-party1".to_string(), |
| vec![ |
| violation_m(violation_ver, [SAFE_TO_RUN, "fuzzed"]), |
| full_audit(ver(DEFAULT_VER), SAFE_TO_RUN), |
| ], |
| ); |
| |
| let store = Store::mock(config, audits, imports); |
| |
| assert_report_snapshot!("mock-simple-violation-hit-with-extra-junk", metadata, store); |
| } |