difftreelog
test import formatting test-cases from rustanka
in: master
45 files changed
Cargo.lockdiffbeforeafterboth155 "generic-array",155 "generic-array",156]156]157158[[package]]159name = "bstr"160version = "1.12.1"161source = "registry+https://github.com/rust-lang/crates.io-index"162checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"163dependencies = [164 "memchr",165 "serde",166]157167158[[package]]168[[package]]159name = "bumpalo"169name = "bumpalo"452 "wasm-bindgen",462 "wasm-bindgen",453]463]464465[[package]]466name = "globset"467version = "0.4.18"468source = "registry+https://github.com/rust-lang/crates.io-index"469checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3"470dependencies = [471 "aho-corasick",472 "bstr",473 "log",474 "regex-automata",475 "regex-syntax",476]454477455[[package]]478[[package]]456name = "hashbrown"479name = "hashbrown"548checksum = "e82db8c87c7f1ccecb34ce0c24399b8a73081427f3c7c50a5d597925356115e4"571checksum = "e82db8c87c7f1ccecb34ce0c24399b8a73081427f3c7c50a5d597925356115e4"549dependencies = [572dependencies = [550 "console",573 "console",574 "globset",551 "once_cell",575 "once_cell",552 "similar",576 "similar",553 "tempfile",577 "tempfile",578 "walkdir",554]579]555580556[[package]]581[[package]]796source = "registry+https://github.com/rust-lang/crates.io-index"821source = "registry+https://github.com/rust-lang/crates.io-index"797checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"822checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"823824[[package]]825name = "log"826version = "0.4.29"827source = "registry+https://github.com/rust-lang/crates.io-index"828checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"798829799[[package]]830[[package]]800name = "logos"831name = "logos"1156source = "registry+https://github.com/rust-lang/crates.io-index"1187source = "registry+https://github.com/rust-lang/crates.io-index"1157checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"1188checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"11891190[[package]]1191name = "same-file"1192version = "1.0.6"1193source = "registry+https://github.com/rust-lang/crates.io-index"1194checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"1195dependencies = [1196 "winapi-util",1197]115811981159[[package]]1199[[package]]1160name = "saphyr-parser-bw"1200name = "saphyr-parser-bw"1490 "memchr",1530 "memchr",1491]1531]15321533[[package]]1534name = "walkdir"1535version = "2.5.0"1536source = "registry+https://github.com/rust-lang/crates.io-index"1537checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"1538dependencies = [1539 "same-file",1540 "winapi-util",1541]149215421493[[package]]1543[[package]]1494name = "wasip2"1544name = "wasip2"1544 "unicode-ident",1594 "unicode-ident",1545]1595]15961597[[package]]1598name = "winapi-util"1599version = "0.1.11"1600source = "registry+https://github.com/rust-lang/crates.io-index"1601checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"1602dependencies = [1603 "windows-sys 0.59.0",1604]154616051547[[package]]1606[[package]]1548name = "windows-link"1607name = "windows-link"Cargo.tomldiffbeforeafterboth636364mimallocator = "0.1.3"64mimallocator = "0.1.3"65indoc = "2.0"65indoc = "2.0"66insta = "1.46"66insta = { version = "1.46", features = ["glob"] }67tempfile = "3.24"67tempfile = "3.24"68pathdiff = "0.2.3"68pathdiff = "0.2.3"69hashbrown = "0.16.1"69hashbrown = "0.16.1"crates/jrsonnet-formatter/src/lib.rsdiffbeforeafterboth13 Arg, ArgsDesc, Assertion, BinaryOperator, Bind, CompSpec, Destruct, DestructArrayPart,13 Arg, ArgsDesc, Assertion, BinaryOperator, Bind, CompSpec, Destruct, DestructArrayPart,14 DestructRest, Expr, ExprBase, FieldName, ForSpec, IfSpec, ImportKind, Literal, Member,14 DestructRest, Expr, ExprBase, FieldName, ForSpec, IfSpec, ImportKind, Literal, Member,15 Name, Number, ObjBody, ObjLocal, ParamsDesc, SliceDesc, SourceFile, Stmt, Suffix, Text,15 Name, Number, ObjBody, ObjLocal, ParamsDesc, SliceDesc, SourceFile, Stmt, Suffix, Text,16 UnaryOperator, Visibility,16 TextKind, UnaryOperator, Visibility,17 },17 },18 AstNode, AstToken as _, SyntaxToken,18 AstNode, AstToken as _, SyntaxToken,19};19};252526mod children;26mod children;27mod comments;27mod comments;28#[cfg(test)]29mod tests;28mod tests;302931fn with_indent_eoi(cond: ConditionResolver, o: PrintItems, e: EndingComments) -> PrintItems {30fn with_indent_eoi(cond: ConditionResolver, o: PrintItems, e: EndingComments) -> PrintItems {200199201impl Printable for Text {200impl Printable for Text {202 fn print(&self, out: &mut PrintItems) {201 fn print(&self, out: &mut PrintItems) {202 if matches!(self.kind(), TextKind::StringBlock) {203 let text = self.text();204205 for (i, ele) in text.split("\n").enumerate() {206 if i != 0 {207 p!(out, nl);208 }209 // TODO: Trim and recreate whitespace210 p!(out, string(ele.to_string()));211 }212 return;213 }203 p!(out, string(format!("{}", self)));214 p!(out, string(format!("{}", self)));204 }215 }205}216}crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__args.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__asserts.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__complex_comments.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__complex_nested.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__self_super.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@args.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@asserts.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@basic_array.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@basic_object.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@comments.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@complex_comments.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@complex_nested.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@comprehensions.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@conditionals.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@functions.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@imports.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@local_vars.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@operators.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@self_super.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@std_functions.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@string_styles.jsonnet.snapdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests.rsdiffbeforeafterboth1#![cfg(test)]23use std::fs;41use dprint_core::formatting::{PrintItems, PrintOptions};5use dprint_core::formatting::{PrintItems, PrintOptions};2use indoc::indoc;6use indoc::indoc;7use insta::{assert_snapshot, glob};384use crate::Printable;9use crate::Printable;51013 out18 out14 },19 },15 PrintOptions {20 PrintOptions {16 indent_width: 2,21 indent_width: 3,17 max_width: 100,22 max_width: 100,18 use_tabs: true,23 use_tabs: false,19 new_line_text: "\n",24 new_line_text: "\n",20 },25 },21 )26 )22}27}232824#[test]29#[test]25fn complex_comments() {30fn snapshots() {31 glob!("tests/*.jsonnet", |path| {26 insta::assert_snapshot!(reformat(indoc!(32 let input = fs::read_to_string(path).expect("read test file");27 "{28 comments: {29 _: '',30 // Plain comment31 a: '',3233 # Plain comment with empty line before34 b: '',35 /*Single-line multiline comment3637 */38 c: '',3940 /**Single-line multiline doc comment4142 */43 c: '',4445 /**Multiline doc46 Comment47 */48 c: '',4950 /*5152 Multi-line5354 comment55 */56 d: '',5758 e: '', // Inline comment5960 k: '',6162 // Text after everything63 },64 comments2: {65 k: '',66 // Text after everything, but no newline above67 },68 spacing: {69 a: '',7071 b: '',72 },73 noSpacing: {74 a: '',75 b: '',76 },7778 smallObjectWithEnding: {/*Ending comment*/},79 smallObjectWithFieldAndEnding: {a: 11/*Ending comment*/},80 smallObjectWithFieldAndEnding2: {/*Start*/a: 11/*Ending comment*/},81 }"82 )));33 assert_snapshot!(reformat(&input));34 });83}35}8485#[test]86fn args() {87 insta::assert_snapshot!(reformat(indoc!(88 "89 {90 short: aaa(1,2,3,4,5),91 long: bbb(123123123123123123123,12312312321123123123,123123123123312123123,123123123123123123312,123123123123312321123),92 short_in_long: bbb(aaa(1,2,3,4,5), 123123123123123123123,12312312321123123123,123123123123312123123,123123123123123123312,123123123123312321123),93 long_in_short: aaa(1,2,3,4,5,bbb(123123123123123123123,12312312321123123123,123123123123312123123,123123123123123123312,123123123123312321123)),94 }95 "96 )));97}9899#[test]100fn asserts() {101 insta::assert_snapshot!(reformat(indoc!(102 "103 {104 assert 1 > 0 : 'one should be greater than zero',105 assert true,106 value: 42,107 }108 "109 )));110}111112#[test]113fn complex_nested() {114 insta::assert_snapshot!(reformat(indoc!(115 "116 {117 kubernetes: {118 deployment: {119 apiVersion: 'apps/v1',120 kind: 'Deployment',121 metadata: {122 name: 'myapp',123 labels: { app: 'myapp', version: 'v1' },124 },125 spec: {126 replicas: 3,127 selector: { matchLabels: { app: 'myapp' } },128 template: {129 metadata: { labels: { app: 'myapp' } },130 spec: {131 containers: [132 {133 name: 'myapp',134 image: 'myapp:latest',135 ports: [{ containerPort: 8080 }],136 env: [137 { name: 'FOO', value: 'bar' },138 { name: 'BAZ', valueFrom: { secretKeyRef: { name: 'mysecret', key: 'password' } } },139 ],140 },141 ],142 },143 },144 },145 },146 },147 }148 "149 )));150}151152#[test]153fn self_super() {154 insta::assert_snapshot!(reformat(indoc!(155 "156 local base = {157 foo: 'bar',158 method():: self.foo,159 };160161 base {162 foo: super.foo + '-extended',163 result: self.method(),164 }165 "166 )));167}16836crates/jrsonnet-formatter/src/tests/args.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/asserts.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/basic_array.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/basic_object.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/comments.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/complex_comments.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/complex_nested.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/comprehensions.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/conditionals.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/functions.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/imports.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/local_vars.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/operators.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/self_super.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/std_functions.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-formatter/src/tests/string_styles.jsonnetdiffbeforeafterbothno changes
crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__plain_call.snapdiffbeforeafterboth5SOURCE_FILE@0..375SOURCE_FILE@0..376 EXPR@0..366 EXPR@0..367 EXPR_BINARY@0..367 EXPR_BINARY@0..368 EXPR@0..38 EXPR@0..319 EXPR_VAR@0..39 EXPR_VAR@0..310 NAME@0..310 NAME@0..311 IDENT@0..3 "std"11 IDENT@0..3 "std"12 SUFFIX_INDEX@3..1012 SUFFIX_INDEX@3..1013 DOT@3..4 "."13 DOT@3..4 "."14 NAME@4..1014 NAME@4..1015 IDENT@4..10 "substr"15 IDENT@4..10 "substr"16 SUFFIX_APPLY@10..3116 SUFFIX_APPLY@10..3117 ARGS_DESC@10..3117 ARGS_DESC@10..3118 L_PAREN@10..11 "("18 L_PAREN@10..11 "("19 ARG@11..1219 ARG@11..1220 EXPR@11..1220 EXPR@11..1221 EXPR_VAR@11..1221 EXPR_VAR@11..1222 NAME@11..1222 NAME@11..1223 IDENT@11..12 "a"23 IDENT@11..12 "a"24 COMMA@12..13 ","24 COMMA@12..13 ","25 WHITESPACE@13..14 " "25 WHITESPACE@13..14 " "26 ARG@14..1526 ARG@14..1527 EXPR@14..1527 EXPR@14..1528 EXPR_NUMBER@14..1528 EXPR_NUMBER@14..1529 FLOAT@14..15 "0"29 FLOAT@14..15 "0"30 COMMA@15..16 ","30 COMMA@15..16 ","31 WHITESPACE@16..17 " "31 WHITESPACE@16..17 " "32 ARG@17..3032 ARG@17..3033 EXPR@17..3033 EXPR@17..3034 EXPR_VAR@17..2034 EXPR_VAR@17..2035 NAME@17..2035 NAME@17..2036 IDENT@17..20 "std"36 IDENT@17..20 "std"37 SUFFIX_INDEX@20..2737 SUFFIX_INDEX@20..2738 DOT@20..21 "."38 DOT@20..21 "."39 NAME@21..2739 NAME@21..2740 IDENT@21..27 "length"40 IDENT@21..27 "length"41 SUFFIX_APPLY@27..3041 SUFFIX_APPLY@27..3042 ARGS_DESC@27..3042 ARGS_DESC@27..3043 L_PAREN@27..28 "("43 L_PAREN@27..28 "("44 ARG@28..2944 ARG@28..2945 EXPR@28..2945 EXPR@28..2946 EXPR_VAR@28..2946 EXPR_VAR@28..2947 NAME@28..2947 NAME@28..2948 IDENT@28..29 "b"48 IDENT@28..29 "b"49 R_PAREN@29..30 ")"49 R_PAREN@29..30 ")"50 R_PAREN@30..31 ")"50 R_PAREN@30..31 ")"51 WHITESPACE@31..32 " "51 WHITESPACE@31..32 " "52 EQ@32..34 "=="52 EQ@32..34 "=="53 WHITESPACE@34..35 " "53 WHITESPACE@34..35 " "crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__string_block_trim.snapdiffbeforeafterbothno changes
crates/jrsonnet-rowan-parser/src/string_block.rsdiffbeforeafterboth52 self.rest().chars().next()52 self.rest().chars().next()53 }53 }5455 fn eat_if(&mut self, f: impl Fn(char) -> bool) -> usize {56 if self.peek().map(f).unwrap_or(false) {57 self.index += 1;58 return 1;59 }60 061 }546255 fn eat_while(&mut self, f: impl Fn(char) -> bool) -> usize {63 fn eat_while(&mut self, f: impl Fn(char) -> bool) -> usize {56 if self.index == self.source.len() {64 if self.index == self.source.len() {133 offset: lex.span().end,141 offset: lex.span().end,134 };142 };143144 ctx.eat_if(|v| v == '-');135145136 // Skip whitespaces146 // Skip whitespaces137 ctx.eat_while(|r| r == ' ' || r == '\t' || r == '\r');147 ctx.eat_while(|r| r == ' ' || r == '\t' || r == '\r');crates/jrsonnet-rowan-parser/src/tests.rsdiffbeforeafterboth205 super.a + super.b204 super.a + super.b206 "#205 "#206207 string_block_trim => r#"208 |||-209 Trimmed text block210 |||211 "#207);212);208213209#[test]214#[test]