mirror of
https://github.com/avelino/awesome-go.git
synced 2024-11-07 16:33:40 +00:00
Add test to find out malformed separators. (#1564)
Fix all links failed the test.
This commit is contained in:
parent
8065a515cc
commit
3d9d9d0d3c
12
README.md
12
README.md
@ -640,7 +640,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
|
|||||||
* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser.
|
* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser.
|
||||||
* [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output.
|
* [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output.
|
||||||
* [ozzo-log](https://github.com/go-ozzo/ozzo-log) - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail).
|
* [ozzo-log](https://github.com/go-ozzo/ozzo-log) - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail).
|
||||||
* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting.
|
* [seelog](https://github.com/cihub/seelog) - Logging functionality with flexible dispatching, filtering, and formatting.
|
||||||
* [slf](https://github.com/ventu-io/slf) - The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go).
|
* [slf](https://github.com/ventu-io/slf) - The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go).
|
||||||
* [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go.
|
* [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go.
|
||||||
* [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging.
|
* [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging.
|
||||||
@ -1417,7 +1417,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
|
|||||||
* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs.
|
* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs.
|
||||||
* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time.
|
* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time.
|
||||||
* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form.
|
* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form.
|
||||||
* [go-checkstyle](https://github.com/qiniu/checkstyle) checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments.
|
* [go-checkstyle](https://github.com/qiniu/checkstyle) - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments.
|
||||||
* [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects.
|
* [go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects.
|
||||||
* [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages.
|
* [go-outdated](https://github.com/firstrow/go-outdated) - Console application that displays outdated packages.
|
||||||
* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer.
|
* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer.
|
||||||
@ -1488,7 +1488,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
|
|||||||
* [govvv](https://github.com/ahmetalpbalkan/govvv) - “go build” wrapper to easily add version information into Go binaries.
|
* [govvv](https://github.com/ahmetalpbalkan/govvv) - “go build” wrapper to easily add version information into Go binaries.
|
||||||
* [gox](https://github.com/mitchellh/gox) - Dead simple, no frills Go cross compile tool.
|
* [gox](https://github.com/mitchellh/gox) - Dead simple, no frills Go cross compile tool.
|
||||||
* [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging.
|
* [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging.
|
||||||
* [grapes](https://github.com/yaronsumel/grapes) - lightweight tool designed to distribute commands over ssh with ease.
|
* [grapes](https://github.com/yaronsumel/grapes) - Lightweight tool designed to distribute commands over ssh with ease.
|
||||||
* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions.
|
* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions.
|
||||||
* [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application.
|
* [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application.
|
||||||
* [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler.
|
* [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler.
|
||||||
@ -1529,9 +1529,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
|
|||||||
* [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go.
|
* [JayDiff](https://github.com/yazgazan/jaydiff) - JSON diff utility written in Go.
|
||||||
* [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
|
* [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
|
||||||
* [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms.
|
* [Leaps](https://github.com/jeffail/leaps) - Pair programming service using Operational Transforms.
|
||||||
* [limetext](http://limetext.org/) Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
|
* [limetext](http://limetext.org/) - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
|
||||||
* [LiteIDE](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE.
|
* [LiteIDE](https://github.com/visualfc/liteide) - LiteIDE is a simple, open source, cross-platform Go IDE.
|
||||||
* [mockingjay](https://github.com/quii/mockingjay-server) Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests.
|
* [mockingjay](https://github.com/quii/mockingjay-server) - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests.
|
||||||
* [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go.
|
* [myLG](https://github.com/mehrdadrad/mylg) - Command Line Network Diagnostic tool written in Go.
|
||||||
* [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go.
|
* [naclpipe](https://github.com/unix4fun/naclpipe) - Simple NaCL EC25519 based crypto pipe tool written in Go.
|
||||||
* [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go.
|
* [nes](https://github.com/fogleman/nes) - Nintendo Entertainment System (NES) emulator written in Go.
|
||||||
|
32
repo_test.go
32
repo_test.go
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"regexp"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
@ -39,6 +40,37 @@ func TestDuplicatedLinks(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
reContainsLink = regexp.MustCompile(`\* \[.*\]\(.*\)`)
|
||||||
|
reOnlyLink = regexp.MustCompile(`\* \[.*\]\(.*\)$`)
|
||||||
|
reLinkWithDescription = regexp.MustCompile(`\* \[.*\]\(.*\) - \S`)
|
||||||
|
)
|
||||||
|
|
||||||
|
// Test if an entry has description, it must be separated from link with ` - `
|
||||||
|
func TestSeparator(t *testing.T) {
|
||||||
|
var matched, containsLink, noDescription bool
|
||||||
|
input, err := ioutil.ReadFile("./README.md")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
lines := strings.Split(string(input), "\n")
|
||||||
|
for _, line := range lines {
|
||||||
|
line = strings.Trim(line, " ")
|
||||||
|
containsLink = reContainsLink.MatchString(line)
|
||||||
|
if containsLink {
|
||||||
|
noDescription = reOnlyLink.MatchString(line)
|
||||||
|
if noDescription {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
matched = reLinkWithDescription.MatchString(line)
|
||||||
|
if !matched {
|
||||||
|
t.Errorf("expected entry to be in form of `* [link] - description`, got '%s'", line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func testList(t *testing.T, list *goquery.Selection) {
|
func testList(t *testing.T, list *goquery.Selection) {
|
||||||
list.Find("ul").Each(func(_ int, items *goquery.Selection) {
|
list.Find("ul").Each(func(_ int, items *goquery.Selection) {
|
||||||
testList(t, items)
|
testList(t, items)
|
||||||
|
Loading…
Reference in New Issue
Block a user