first round of tests for the lexer
							parent
							
								
									9f110fff78
								
							
						
					
					
						commit
						8138ae6e54
					
				| @ -0,0 +1,49 @@ | ||||
| package wikilink_test | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"code.ndumas.com/ndumas/wikilink-parser" | ||||
| ) | ||||
| 
 | ||||
| func Test_Lexer(t *testing.T) { | ||||
| 	// t.Parallel()
 | ||||
| 	tcs := []struct { | ||||
| 		name     string | ||||
| 		in       string | ||||
| 		expected []wikilink.ItemType | ||||
| 	}{ | ||||
| 		{name: "wikilink", in: "[[wikilink]]", expected: []wikilink.ItemType{wikilink.ItemOpenLink, wikilink.ItemText, wikilink.ItemCloseLink}}, | ||||
| 		/* | ||||
| 			{name: "wikilink|display name", in: "[[wikilink|display name]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink|display name|second pipe", in: "[[wikilink|display name|second pipe]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink with numeric alias|420|second pipe", in: "[[wikilink|420|second pipe]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink with spaces in filename", in: "[[wikilink spaces]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "#heading", in: "[[#heading]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink#heading", in: "[[wikilink#heading]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink#heading|display name", in: "[[wikilink#heading|display name]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink#heading|display name|second pipe", in: "[[wikilink#heading|display name|second pipe]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink with numeric aliases#heading|420|display name", in: "[[wikilink#heading|420|second pipe]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "^blockRef", in: "[[^blockRef]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink^blockRef", in: "[[wikilink^blockRef]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink^blockRef|display name", in: "[[wikilink#^blockRef|display name]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink^blockRef|display name|second pipe", in: "[[wikilink#^blockRef|display name|second pipe]]", expected: []wikilink.ItemType{}}, | ||||
| 			{name: "wikilink with numeric aliases^blockRef|420|second pipe", in: "[[wikilink#^blockRef|420|second pipe]]", expected: []wikilink.ItemType{}}, | ||||
| 		*/ | ||||
| 	} | ||||
| 
 | ||||
| 	for _, tc := range tcs { | ||||
| 		tc := tc | ||||
| 		t.Run(tc.name, func(t *testing.T) { | ||||
| 			// t.Parallel()
 | ||||
| 			l := wikilink.Lex("testLexer", tc.in) | ||||
| 			for _, e := range tc.expected { | ||||
| 				n := l.NextItem() | ||||
| 				if e != n.Typ { | ||||
| 					t.Logf("expected %s, received %s\n with raw value %q", e, n, n.Val) | ||||
| 					t.Fail() | ||||
| 				} | ||||
| 			} | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue