Ben Kraft and GitHub
3746ecd063
Add integration tests against a gqlgen server ( #50 )
...
## Summary:
We have lots of tests covering codegen, but not a lot that actually run
the code. For things where all we do is generate types, that's (mostly)
fine (especially now that we actually build the code), but as we
generate more nontrivial non-type code we need to actually run it.
So I wrote some integration tests that spin up a little gqlgen
server, and make calls to it; we can add more over time especially as
the JSON marshalling logic gets complex (to support fragments).
They're more work to write than the snapshot tests, but of course they
can test a lot more.
In addition to gqlgen, I pulled in testify assert/require, because I
really wanted to be able to use assert.Equal and such for these. I
didn't bother converting existing tests, although I assume they will
become useful elsewhere in time. Both gqlgen and testify are of course
only used in tests.
Fixes #21 and #24 .
Issue: https://github.com/Khan/genqlient/issues/21
Issue: https://github.com/Khan/genqlient/issues/24
## Test plan:
make check
Author: benjaminjkraft
Reviewers: aberkan, dnerdy, benjaminjkraft, csilvers, MiguelCastillo
Required Reviewers:
Approved by: aberkan, dnerdy
Checks: ✅ Test (1.17), ✅ Test (1.16), ✅ Test (1.15), ✅ Test (1.14), ✅ Test (1.13), ✅ Lint, ✅ Test (1.17), ✅ Test (1.16), ✅ Test (1.15), ✅ Test (1.14), ✅ Test (1.13), ✅ Lint
Pull request URL: https://github.com/Khan/genqlient/pull/50
2021-08-20 10:54:41 -07:00
Ben Kraft and GitHub
700392315a
Enable golangci-lint ( #49 )
...
## Summary:
It would be nice to have some linting beyond `go vet`! Now we do. I
started by copying the config from Khan/webapp. I did remove a couple
of staticcheck checks that I didn't feel were useful. (Note also that
exportloopref is the replacement for scopelint in newer golangci-lint.)
Included are all the needed lint fixes; most are stylistic but the
changes in the example are a (minor) bugfix.
Fixes #22 .
Issue: https://github.com/Khan/genqlient/issues/22
## Test plan:
make check
Author: benjaminjkraft
Reviewers: aberkan, dnerdy, benjaminjkraft, csilvers, MiguelCastillo
Required Reviewers:
Approved by: aberkan, dnerdy
Checks: ✅ Test (1.17), ✅ Test (1.16), ✅ Test (1.15), ✅ Test (1.14), ✅ Test (1.13), ✅ Lint, ✅ Test (1.17), ✅ Test (1.16), ✅ Test (1.15), ✅ Test (1.14), ✅ Test (1.13), ✅ Lint
Pull request URL: https://github.com/Khan/genqlient/pull/49
2021-08-20 10:39:12 -07:00
Ben Kraft
dfc9f02efc
Actually build the generated code in tests
...
This revealed one bug already (a redux of #43 )! And will hopefully help
more as unmarshalers get more complicated (thanks to
interfaces/fragments).
2021-06-03 15:48:05 -07:00
Ben Kraft
1f442da041
Switch to cupaloy for snapshots
...
Slightly uglier filenames, but less code and free diffing! Approved in
ADR-466 for Khan use. Fixes #23 .
2021-06-03 12:08:56 -07:00
Ben Kraft
3c11f07e62
Make test ID type actually exist
...
This way I can start to test that the code compiles.
2021-06-03 11:36:45 -07:00
Ben Kraft
c2e7dc4e5b
Handle omitempty correctly for slices
...
We were generating broken code; fixes #43 . Also fixes a bug where
applying omitempty to the entire query was broken by e597cac74c .
2021-06-01 15:49:42 -07:00
Ben Kraft and GitHub
589680f323
Notes from meeting about content-library
...
In general it seems like they are happy with the potential future fragments plan!
2021-05-11 14:32:11 -07:00
Ben Kraft
caa72dae6a
Remove line numbers from export-operations file, again
...
I messed it up in 6adfe3b2377! This shows it's really time to turn on
more linters, which would have caught this.
2021-05-03 11:16:13 -07:00
Ben Kraft and GitHub
870284271a
Some more ideas on how to allow fragments for code-sharing
...
And clarified some existing ideas and tradeoffs. This is enough to
make me think we may not need to implement both options, at
least to start.
2021-04-30 16:55:11 -07:00
Ben Kraft
c34c5ff505
Turn on test coverage in Makefile/actions
2021-04-23 18:18:07 -07:00
Ben Kraft
6adfe3b237
Remove line numbers from export-operations file
...
This was sort of accidental from putting them in line numbers, and it
turns out it's more annoying than useful. Easy enough to remove.
Fixes #40 .
2021-04-23 18:14:09 -07:00
Ben Kraft
d449acdda3
Clarify object type documentation
...
Craig pointed out this is a bit confusing when you don't have all the
fields. Now we say so, but still include the type's description in case
it's useful.
Fixes #37 .
2021-04-23 18:13:32 -07:00
Ben Kraft
f1914cd9ef
log response body, not request body, on non-200
2021-04-22 10:14:26 -07:00
Ben Kraft
b399e0d740
move TODOs into issues
2021-04-21 19:05:38 -07:00
Ben Kraft
748f2cf072
Add documentation to types and fields
...
Fixes #3 .
2021-04-21 18:07:36 -07:00
Ben Kraft
32fea7fae4
fix incorrect enum-value type names for enums used as inputs
...
luckily webapp is now a much more complete test suite and genqlient's
own tests, so it caught this!
2021-04-21 17:41:33 -07:00
Ben Kraft
9bc97108ea
fix ExportOperations relative to config file if it's omitted
2021-04-21 11:42:19 -07:00
Ben Kraft
76d372919c
make ExportOperations relative to config file
2021-04-21 11:34:25 -07:00
Ben Kraft
2272ad8a12
allow map[string]interface{}, and other such things, as scalars
2021-04-21 11:32:49 -07:00
Ben Kraft and GitHub
f97d33e6ae
more design notes on interfaces/fragments
2021-04-21 10:23:03 -07:00
Ben Kraft
288657fcb9
TODOs
2021-04-16 11:55:35 -07:00
Ben Kraft
93df752ac3
a few more tiny steps in types.go
2021-04-15 19:11:12 -07:00
Ben Kraft
be225ba9d0
actually starting to make progress on types.go
2021-04-15 19:00:41 -07:00
Ben Kraft
234c683e21
add a test with a pile of nested interfaces
2021-04-15 18:46:24 -07:00
Ben Kraft
89fe78e11a
bit more nibbling at types.go
2021-04-15 18:00:31 -07:00
Ben Kraft
40fc7fdbc5
handle nested lists correctly
2021-04-15 17:49:09 -07:00
Ben Kraft
e82a32f47a
few more attempts at cleaning up types.go
2021-04-15 17:46:13 -07:00
Ben Kraft
f72cb9d346
try to clean up types.go a bit, mostly fail
2021-04-15 17:36:04 -07:00
Ben Kraft
2c087c7821
big overhaul of error-formatting, to get positions more consistently
...
fixes #2
2021-04-15 17:01:46 -07:00
Ben Kraft
ade01c9280
test for uppercasing aliases
2021-04-15 15:50:22 -07:00
Ben Kraft
1bd7f7cb16
put example-test verbose flag in right place
2021-04-15 15:43:46 -07:00
Ben Kraft
f8f81dad7b
snapshots for errors
2021-04-15 15:42:05 -07:00
Ben Kraft
ddf4b03350
allow interface{} as a scalar
2021-04-15 11:50:52 -07:00
Ben Kraft
a5fe0943bd
only print diff in example_test if test.v is set
2021-04-15 11:38:39 -07:00
Ben Kraft
136ac7729f
include alias even if we don't need it
2021-04-15 11:36:46 -07:00
Ben Kraft
e597cac74c
add option to force using a pointer
2021-04-12 16:01:21 -07:00
Ben Kraft
74411faf52
TODO: auto-caching
2021-04-09 12:18:09 -07:00
Ben Kraft
16523c1f81
add omitempty
2021-04-09 11:51:30 -07:00
Ben Kraft
25a2b45ccc
redo comment parsing to set up for field-level config
2021-04-09 09:53:53 -07:00
Ben Kraft
b4e8316c6a
add support for custom scalars -- mainly adding proper import machinery
2021-04-08 13:07:31 -07:00
Ben Kraft
e68787ad35
add TODO
2021-04-08 11:28:10 -07:00
Ben Kraft
b8f922a41b
err explicitly if there's no operation name
2021-04-07 17:18:03 -07:00
Ben Kraft and GitHub
eae8553c04
couple more TODOs
2021-04-06 15:49:52 -07:00
Ben Kraft and GitHub
a33595b4b3
update & reorganize TODOs
2021-04-06 15:44:03 -07:00
Ben Kraft
e7d9c7d140
update repo to match official open source guidelines
2021-04-06 12:29:28 -07:00
Ben Kraft
574f704ce9
just use the filename, no line number, in source-location
2021-04-06 12:19:12 -07:00
Ben Kraft
6404ba0e58
fix error message when a go string-query fails to parse
2021-04-05 17:48:34 -07:00
Ben Kraft
d880512499
set content-type header
2021-04-05 12:50:30 -07:00
Ben Kraft
77804e3475
naming things
2021-04-02 18:13:10 -07:00
Ben Kraft
28dfeb5b46
more notes on testing
2021-04-02 18:08:13 -07:00
Ben Kraft
9c8cf02181
proper test wiring for example test in github actions
2021-04-02 18:04:05 -07:00
Ben Kraft
efc6549d7e
fix example args in github actions
2021-04-02 17:18:37 -07:00
Ben Kraft
5ab592ac18
try example in github actions again
2021-04-02 17:17:38 -07:00
Ben Kraft
21954ac62d
general pass of README cleanup
2021-04-02 17:01:49 -07:00
Ben Kraft
0432f3f434
miscellaneous test coverage
2021-04-02 16:34:15 -07:00
Ben Kraft
4669ea00d0
TODOs
2021-04-02 16:26:22 -07:00
Ben Kraft
334c186944
error if you try to use features that aren't done (fragments/interfaces)
2021-04-02 16:19:50 -07:00
Ben Kraft
edb12e3e0a
pretty-print JSON in query-export
2021-04-02 16:01:52 -07:00
Ben Kraft
4b06c94eed
put config-file-relative paths in exported queries (and error messages)
2021-04-01 16:51:00 -07:00
Ben Kraft
9fe8f09e8c
more miscellaneous fixes while integrating into webapp
2021-04-01 15:04:36 -07:00
Ben Kraft
fbf00f3bef
add option to export all operations
2021-04-01 13:11:23 -07:00
Ben Kraft
de038dc428
shorten enum and input-object type-names
2021-04-01 12:40:54 -07:00
Ben Kraft
eae68e43c9
allow globbing, and extract queries from .go files
2021-04-01 12:34:51 -07:00
Ben Kraft
ec6681e715
allow multiple queries-files
2021-04-01 12:29:24 -07:00
Ben Kraft and GitHub
10ae5ff5d8
formatting
2021-03-31 18:09:50 -07:00
Ben Kraft and GitHub
19cd9a01f7
formatting
2021-03-31 18:09:34 -07:00
Ben Kraft and GitHub
291ce980b3
another idea on query extraction
2021-03-31 10:43:08 -07:00
Ben Kraft
fb3c0b3cb4
more TODOs around type naming
2021-03-30 17:56:14 -07:00
Ben Kraft
27ee3c2dbd
fixes while integrating into webapp
2021-03-30 17:53:31 -07:00
Ben Kraft
b125191f99
fix png
2021-03-30 13:26:43 -07:00
Ben Kraft
be8952f11a
embed png because fonts
2021-03-30 13:23:16 -07:00
Ben Kraft
9e84417584
kern
2021-03-30 13:17:22 -07:00
Ben Kraft
0c80d0c656
actually fix svg
2021-03-30 13:03:25 -07:00
Ben Kraft
45dd9b5c1d
fix svg?
2021-03-30 13:00:13 -07:00
Ben Kraft
cf1965160b
logo of sorts
2021-03-30 12:59:39 -07:00
Ben Kraft
315617261d
silliness
2021-03-30 12:48:35 -07:00
Ben Kraft
470222e118
check some boxes off the README
2021-03-30 12:46:03 -07:00
Ben Kraft
cbebeaaed4
rename in code
2021-03-30 12:41:37 -07:00
Ben Kraft and GitHub
db3ee65854
Rename and do some fun heading nonsense in the README
2021-03-30 12:39:59 -07:00
Ben Kraft
2c52314494
set opname
2021-03-30 11:27:43 -07:00
Ben Kraft
e3f6afeb78
more documentation in client.go, simplify unmarshaling slightly
2021-03-25 14:26:25 -07:00
Ben Kraft
f136758db4
misc bits of documentation
2021-03-25 14:13:14 -07:00
Ben Kraft
937540d244
make client an interface
2021-03-25 14:08:12 -07:00
Ben Kraft
a9054e484f
remove a stray printf
2021-03-22 19:17:45 -07:00
Ben Kraft
dd85597577
more wiring for configurable context/client, theoretically should be good enough for khan use
2021-03-22 19:17:06 -07:00
Ben Kraft
59ca841a6b
start of wiring for configurable context
2021-03-22 19:09:17 -07:00
Ben Kraft
17a95fd4de
more TODOs, and especially clarify the situation for input type names
2021-03-22 18:45:52 -07:00
Ben Kraft
088ec53ad5
fix branch name in github actions
2021-03-22 18:14:16 -07:00
Ben Kraft
a42c9b8166
clean up various TODOs and comments
2021-03-22 18:11:51 -07:00
Ben Kraft
463e3ed319
remove pointers for optionality -- shockingly easy
2021-03-22 17:39:22 -07:00
Ben Kraft
fed38e4f55
redo type naming
2021-03-19 18:40:58 -07:00
Ben Kraft
58f4aff83b
more design updates -- clarify what's decided and decide some things
2021-03-19 17:22:23 -07:00
Ben Kraft
5accc088c5
more docs about design and what remains to be done
2021-03-16 19:01:45 -07:00
Ben Kraft and GitHub
8d46de3a9b
Bit more detail on what we need to use non-fragment queries in prod
2021-03-16 12:42:43 -07:00
Ben Kraft and GitHub
f3282426f2
TODOs
2020-09-04 17:14:40 -07:00
Ben Kraft
58dc311289
rename selection to field
2020-07-16 13:50:52 -07:00
Ben Kraft
036d39622d
move everything into snapshot-based testing; update it a bit
2020-07-16 13:42:58 -07:00
Ben Kraft
cf7136ca65
total rewrite to interface handling; not complete but it compiles
2020-07-16 13:28:43 -07:00
Ben Kraft
af4a765a32
back out interfaces/unions, in preparation for new approach
2020-07-16 09:53:21 -07:00
Ben Kraft
e9b90d861f
fix tests
2020-07-15 17:38:47 -07:00