mirror of
https://github.com/cheat/cheat.git
synced 2026-03-07 03:03:32 +01:00
- Add .gitattributes to force LF in mock files (Windows autocrlf) - Fix parse.go: detect line endings from content instead of runtime.GOOS - Add fail-fast: false to CI matrix; trigger on all branch pushes - Skip chmod-based tests on Windows (permissions work differently) - Use filepath.Join for expected paths in Windows path tests - Use platform-appropriate invalid paths in error tests - Add Windows absolute path test case for ValidateSheetName - Skip Unix-specific integration tests on Windows Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package sheet
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
// TestParseWindowsLineEndings tests parsing with Windows line endings
|
|
func TestParseWindowsLineEndings(t *testing.T) {
|
|
// stub our cheatsheet content with Windows line endings
|
|
markdown := "---\r\nsyntax: go\r\ntags: [ test ]\r\n---\r\nTo foo the bar: baz"
|
|
|
|
// parse the frontmatter
|
|
fm, text, err := parse(markdown)
|
|
|
|
// assert expectations
|
|
if err != nil {
|
|
t.Errorf("failed to parse markdown: %v", err)
|
|
}
|
|
|
|
want := "To foo the bar: baz"
|
|
if text != want {
|
|
t.Errorf("failed to parse text: want: %s, got: %s", want, text)
|
|
}
|
|
|
|
want = "go"
|
|
if fm.Syntax != want {
|
|
t.Errorf("failed to parse syntax: want: %s, got: %s", want, fm.Syntax)
|
|
}
|
|
}
|
|
|
|
// TestParseInvalidYAML tests parsing with invalid YAML in frontmatter
|
|
func TestParseInvalidYAML(t *testing.T) {
|
|
// stub our cheatsheet content with invalid YAML
|
|
markdown := `---
|
|
syntax: go
|
|
tags: [ test
|
|
unclosed bracket
|
|
---
|
|
To foo the bar: baz`
|
|
|
|
// parse the frontmatter
|
|
_, _, err := parse(markdown)
|
|
|
|
// assert that an error was returned for invalid YAML
|
|
if err == nil {
|
|
t.Error("expected error for invalid YAML, got nil")
|
|
}
|
|
}
|