Introduce a JSON output table mechanic #248
Reference in New Issue
Block a user
No description provided.
Delete Branch "cr_machinereadable_2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
server listandrecipe listfixes #370
Looks pretty nice!
There seems to be several hacks here (wouldn't be the first in this codebase 🙃), do you expect they'll come back to bite us @cas? Do you have some concerns that it might break in certain ways?
Maybe we could write some tests for this? We have few tests in the codebase but that is because it normally things rely on this hard-to-test CLI > Logic > Output flow.
But here, you can test your implementation of the JsonTable directly? It might be easier. We did that with tagcmp (see the repo for test examples) and it really paid off, there have been very very few bugs and annoyances for people using
abracoming fromtagcmpbecause we ironed out a lot first.Thanks for picking this up!
I don't feel too concerned about it breaking. The only thing that worries me is that it has a slightly brittle way of producing JSON and it proxies another type which may change under us (I'm not too concerned about the proxy part since the use in
abraof tablewriter is really specific and we'll be able to catch when that changes easily).We could test the JSONTable type, I expect the best tests would just be throwing things at and a) testing if the output is valid JSON (parsable) and b) that the output is identical to a raw tablewriter.Table.
No worries, it's great to do this work!
I added tests and in writing the tests discovered a bug in jsontable. Testing Works™.
More tests could be added but I think this should get us a long way there.
Solid! LGTM then, merge away 🚀