// +build go1.8,codegen package api import ( "testing" ) func TestDocstring(t *testing.T) { cases := map[string]struct { In string Expect string }{ "non HTML": { In: "Testing 1 2 3", Expect: "// Testing 1 2 3", }, "link": { In: `a link`, Expect: "// a link (https://example.com)", }, "link with space": { In: `a link`, Expect: "// a link (https://example.com)", }, "list HTML 01": { In: "", Expect: "// * Testing 1 2 3\n// \n// * FooBar", }, "list HTML 02": { In: "", Expect: "// * Testing 1 2 3\n// \n// * FooBar", }, "list HTML leading spaces": { In: " ", Expect: "// * Testing 1 2 3\n// \n// * FooBar", }, "list HTML paragraph": { In: "", Expect: "// * Testing 1 2 3\n// \n// * FooBar", }, "inline code HTML": { In: "", Expect: "// * Testing: 1 2 3\n// \n// * FooBar", }, "complex list paragraph": { In: "", Expect: "// * FOO Bar\n// \n// * Xyz ABC", }, "inline code in paragraph": { In: "

Testing: 1 2 3

", Expect: "// Testing: 1 2 3", }, "root pre": { In: "
Testing
", Expect: "// Testing", }, "paragraph": { In: "

Testing 1 2 3

", Expect: "// Testing 1 2 3", }, "wrap lines": { In: "CreateSecret SecretListEntry SecretName KmsKeyId", Expect: "// CreateSecret SecretListEntry SecretName KmsKeyId", }, "links with spaces": { In: "

Deletes the replication configuration from the bucket. For information about replication configuration, see Cross-Region Replication (CRR) in the Amazon S3 Developer Guide.

", Expect: "// Deletes the replication configuration from the bucket. For information about\n// replication configuration, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)\n// in the Amazon S3 Developer Guide.", }, } for name, c := range cases { t.Run(name, func(t *testing.T) { t.Log("Input", c.In) actual := docstring(c.In) if e, a := c.Expect, actual; e != a { t.Errorf("expect %q, got %q", e, a) } }) } }