mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-30 03:27:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![cfg(target_arch = "wasm32")]
 | |
| 
 | |
| use wasm_bindgen_test::wasm_bindgen_test;
 | |
| 
 | |
| use ruff::registry::Rule;
 | |
| use ruff_python_ast::source_code::{OneIndexed, SourceLocation};
 | |
| use ruff_wasm::{check, ExpandedMessage};
 | |
| 
 | |
| macro_rules! check {
 | |
|     ($source:expr, $config:expr, $expected:expr) => {{
 | |
|         let foo = js_sys::JSON::parse($config).unwrap();
 | |
|         match check($source, foo) {
 | |
|             Ok(output) => {
 | |
|                 let result: Vec<ExpandedMessage> = serde_wasm_bindgen::from_value(output).unwrap();
 | |
|                 assert_eq!(result, $expected);
 | |
|             }
 | |
|             Err(e) => assert!(false, "{:#?}", e),
 | |
|         }
 | |
|     }};
 | |
| }
 | |
| 
 | |
| #[wasm_bindgen_test]
 | |
| fn empty_config() {
 | |
|     check!(
 | |
|         "if (1, 2):\n    pass",
 | |
|         r#"{}"#,
 | |
|         [ExpandedMessage {
 | |
|             code: Rule::IfTuple.noqa_code().to_string(),
 | |
|             message: "If test is a tuple, which is always `True`".to_string(),
 | |
|             location: SourceLocation {
 | |
|                 row: OneIndexed::from_zero_indexed(0),
 | |
|                 column: OneIndexed::from_zero_indexed(0)
 | |
|             },
 | |
|             end_location: SourceLocation {
 | |
|                 row: OneIndexed::from_zero_indexed(1),
 | |
|                 column: OneIndexed::from_zero_indexed(8)
 | |
|             },
 | |
|             fix: None,
 | |
|         }]
 | |
|     );
 | |
| }
 | |
| 
 | |
| #[wasm_bindgen_test]
 | |
| fn partial_config() {
 | |
|     check!("if (1, 2):\n    pass", r#"{"ignore": ["F"]}"#, []);
 | |
| }
 | |
| 
 | |
| #[wasm_bindgen_test]
 | |
| fn partial_nested_config() {
 | |
|     let config = r#"{
 | |
|           "select": ["Q"],
 | |
|           "flake8-quotes": {
 | |
|             "inline-quotes": "single"
 | |
|           }
 | |
|         }"#;
 | |
|     check!(r#"print('hello world')"#, config, []);
 | |
| }
 | 
