Skip to content

Commit 3d8cf38

Browse files
authored
docs: write messages as single json document (#2519)
Closes #2498
1 parent ac847bb commit 3d8cf38

File tree

2 files changed

+47
-8
lines changed

2 files changed

+47
-8
lines changed

README.md

+9
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,15 @@ Some tests use fixtures. If payloads change, you can update them with:
512512
make test-update-snapshots
513513
```
514514

515+
This will only update the snapshots of the short tests. To update all snapshots,
516+
run:
517+
518+
```bash
519+
UPDATE_SNAPSHOTS=true go test -p 4 -tags sqlite ./...
520+
```
521+
522+
You can also run this command from a sub folder.
523+
515524
##### End-to-End Tests
516525

517526
We use [Cypress](https://www.cypress.io) to run our e2e tests.

cmd/clidoc/main.go

+38-8
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,18 @@ func main() {
136136
os.Exit(1)
137137
}
138138

139-
if err := writeMessages(filepath.Join(os.Args[2], "concepts/ui-user-interface.mdx")); err != nil {
139+
sortedMessages := sortMessages()
140+
141+
if err := writeMessages(filepath.Join(os.Args[2], "concepts/ui-user-interface.mdx"), sortedMessages); err != nil {
140142
_, _ = fmt.Fprintf(os.Stderr, "Unable to generate message table: %+v\n", err)
141143
os.Exit(1)
142144
}
143145

146+
if err := writeMessagesJson(filepath.Join(os.Args[2], "concepts/messages.json"), sortedMessages); err != nil {
147+
_, _ = fmt.Fprintf(os.Stderr, "Unable to generate messages.json: %+v\n", err)
148+
os.Exit(1)
149+
}
150+
144151
fmt.Println("All files have been generated and updated.")
145152
}
146153

@@ -154,12 +161,7 @@ func codeEncode(in interface{}) string {
154161
return string(out)
155162
}
156163

157-
func writeMessages(path string) error {
158-
content, err := os.ReadFile(path)
159-
if err != nil {
160-
return err
161-
}
162-
164+
func sortMessages() []*text.Message {
163165
var toSort []*text.Message
164166
for _, m := range messages {
165167
toSort = append(toSort, m)
@@ -172,8 +174,17 @@ func writeMessages(path string) error {
172174
return toSort[i].ID < toSort[j].ID
173175
})
174176

177+
return toSort
178+
}
179+
180+
func writeMessages(path string, sortedMessages []*text.Message) error {
181+
content, err := os.ReadFile(path)
182+
if err != nil {
183+
return err
184+
}
185+
175186
var w bytes.Buffer
176-
for _, m := range toSort {
187+
for _, m := range sortedMessages {
177188
w.WriteString(fmt.Sprintf(`###### %s (%d)
178189
179190
%s
@@ -200,6 +211,25 @@ func writeMessages(path string) error {
200211
return nil
201212
}
202213

214+
func writeMessagesJson(path string, sortedMessages []*text.Message) error {
215+
result := codeEncode(sortedMessages)
216+
217+
f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755)
218+
if err != nil {
219+
return err
220+
}
221+
222+
if _, err := f.WriteString(result); err != nil {
223+
return err
224+
}
225+
226+
if err := f.Close(); err != nil {
227+
return err
228+
}
229+
230+
return nil
231+
}
232+
203233
func validateAllMessages(path string) error {
204234
type message struct {
205235
ID, Name string

0 commit comments

Comments
 (0)