Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add some more tests for config validation, and fix some gaps #274

Merged
merged 1 commit into from
May 8, 2023

Conversation

benjaminjkraft
Copy link
Collaborator

I set these tests up in #270, but I realized there's a lot more we could test unrelated to that PR. In this commit I add some more tests. They're not really exhaustive yet, but they did catch a few bugs, which I fixed:

  • we weren't validating the package-name if you do set it (only if we guess it)
  • If you omitted generated, you would try to write generated code to the directory containing genqlient.yaml, which makes no sense; now we default to generated.go. In the real world it's probably good to set explicitly, but it's actually very convenient in tests that we don't have to, and maybe in small projects too.

I have:

  • Written a clear PR title and description (above)
  • Signed the Khan Academy CLA
  • Added tests covering my changes, if applicable
  • Included a link to the issue fixed, if applicable (n/a)
  • Included documentation, for new features (n/a)
  • Added an entry to the changelog (n/a)

I set these tests up in #270, but I realized there's a lot more we could
test unrelated to that PR. In this commit I add some more tests. They're
not really exhaustive yet, but they did catch a few bugs, which I fixed:
- we weren't validating the package-name if you do set it (only if we
  guess it)
- If you omitted `generated`, you would try to write generated code to
  the directory containing `genqlient.yaml`, which makes no sense; now
  we default to `generated.go`. In the real world it's probably good to
  set explicitly, but it's actually very convenient in tests that we
  don't have to, and maybe in small projects too.
Copy link
Member

@csilvers csilvers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@benjaminjkraft benjaminjkraft merged commit 65d934a into main May 8, 2023
8 checks passed
@benjaminjkraft benjaminjkraft deleted the benkraft.config-tests branch May 8, 2023 00:52
dmitryax pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Mar 12, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/Khan/genqlient](https://togithub.com/Khan/genqlient) |
`v0.6.0` -> `v0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fKhan%2fgenqlient/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fKhan%2fgenqlient/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fKhan%2fgenqlient/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fKhan%2fgenqlient/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>Khan/genqlient (github.com/Khan/genqlient)</summary>

### [`v0.7.0`](https://togithub.com/Khan/genqlient/releases/tag/v0.7.0)

[Compare
Source](https://togithub.com/Khan/genqlient/compare/v0.6.0...v0.7.0)

In addition to several new features and bugfixes, along with this
release comes reorganized
[documentation](https://togithub.com/Khan/genqlient/blob/main/docs) for
genqlient. Note that genqlient now requires Go 1.20 or higher, and is
tested through Go 1.22.

#### What's Changed

- Add "generic" option to the "optional" configuration for handling
nullable types by
[@&#8203;DylanRJohnston](https://togithub.com/DylanRJohnston) in
[Khan/genqlient#252
- Documentation tweaks relating to releases by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#271
- Add some better tests for use_struct_references by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#273
- Add an option to handle enums with ugly casing by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#270
- Add some more tests for config validation, and fix some gaps by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#274
- Add consideration for pointer false directive when optional: pointer
configuration option is used by
[@&#8203;spencermurray](https://togithub.com/spencermurray) in
[Khan/genqlient#280
- Update gqlparser and gqlgen dependencies by
[@&#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#282
- Update gqlparser to omit comments by
[@&#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#284
- bugfix: local variable 'data' colliding with argument name by
[@&#8203;zholti](https://togithub.com/zholti) in
[Khan/genqlient#291
- Pin lint workflow's Go version by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#311
- Upgrade golangci-lint and which go we run it with by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#314
- fix implementation type generation for fragment on a union by
[@&#8203;zzh8829](https://togithub.com/zzh8829) in
[Khan/genqlient#310
- Support more valid graphql file extensions by
[@&#8203;zzh8829](https://togithub.com/zzh8829) in
[Khan/genqlient#309
- Add tests on Go 1.22, and upgrade x/tools to make them work by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#315
- Update gqlgen to latest by
[@&#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#317
- move genqlient Go module to 1.20 by
[@&#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#318
- Improve package-sniffing and bind correctly to types in the same
package by [@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft)
in
[Khan/genqlient#316
- Reorganize and improve documentation by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#322
- Fix non-deterministic generated code involving interfaces and
fragments. by [@&#8203;csilvers](https://togithub.com/csilvers) in
[Khan/genqlient#323
- Release v0.7.0 by
[@&#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#324

#### New Contributors

- [@&#8203;DylanRJohnston](https://togithub.com/DylanRJohnston) made
their first contribution in
[Khan/genqlient#252
- [@&#8203;spencermurray](https://togithub.com/spencermurray) made their
first contribution in
[Khan/genqlient#280
- [@&#8203;zholti](https://togithub.com/zholti) made their first
contribution in
[Khan/genqlient#291
- [@&#8203;zzh8829](https://togithub.com/zzh8829) made their first
contribution in
[Khan/genqlient#310

**Full Changelog**:
Khan/genqlient@v0.6.0...v0.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Andrzej Stencel <astencel@sumologic.com>
DougManton pushed a commit to DougManton/opentelemetry-collector-contrib that referenced this pull request Mar 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/Khan/genqlient](https://togithub.com/Khan/genqlient) |
`v0.6.0` -> `v0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fKhan%2fgenqlient/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fKhan%2fgenqlient/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fKhan%2fgenqlient/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fKhan%2fgenqlient/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>Khan/genqlient (github.com/Khan/genqlient)</summary>

### [`v0.7.0`](https://togithub.com/Khan/genqlient/releases/tag/v0.7.0)

[Compare
Source](https://togithub.com/Khan/genqlient/compare/v0.6.0...v0.7.0)

In addition to several new features and bugfixes, along with this
release comes reorganized
[documentation](https://togithub.com/Khan/genqlient/blob/main/docs) for
genqlient. Note that genqlient now requires Go 1.20 or higher, and is
tested through Go 1.22.

#### What's Changed

- Add "generic" option to the "optional" configuration for handling
nullable types by
[@&open-telemetry#8203;DylanRJohnston](https://togithub.com/DylanRJohnston) in
[Khan/genqlient#252
- Documentation tweaks relating to releases by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#271
- Add some better tests for use_struct_references by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#273
- Add an option to handle enums with ugly casing by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#270
- Add some more tests for config validation, and fix some gaps by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#274
- Add consideration for pointer false directive when optional: pointer
configuration option is used by
[@&open-telemetry#8203;spencermurray](https://togithub.com/spencermurray) in
[Khan/genqlient#280
- Update gqlparser and gqlgen dependencies by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#282
- Update gqlparser to omit comments by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#284
- bugfix: local variable 'data' colliding with argument name by
[@&open-telemetry#8203;zholti](https://togithub.com/zholti) in
[Khan/genqlient#291
- Pin lint workflow's Go version by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#311
- Upgrade golangci-lint and which go we run it with by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#314
- fix implementation type generation for fragment on a union by
[@&open-telemetry#8203;zzh8829](https://togithub.com/zzh8829) in
[Khan/genqlient#310
- Support more valid graphql file extensions by
[@&open-telemetry#8203;zzh8829](https://togithub.com/zzh8829) in
[Khan/genqlient#309
- Add tests on Go 1.22, and upgrade x/tools to make them work by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#315
- Update gqlgen to latest by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#317
- move genqlient Go module to 1.20 by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#318
- Improve package-sniffing and bind correctly to types in the same
package by [@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft)
in
[Khan/genqlient#316
- Reorganize and improve documentation by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#322
- Fix non-deterministic generated code involving interfaces and
fragments. by [@&open-telemetry#8203;csilvers](https://togithub.com/csilvers) in
[Khan/genqlient#323
- Release v0.7.0 by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#324

#### New Contributors

- [@&open-telemetry#8203;DylanRJohnston](https://togithub.com/DylanRJohnston) made
their first contribution in
[Khan/genqlient#252
- [@&open-telemetry#8203;spencermurray](https://togithub.com/spencermurray) made their
first contribution in
[Khan/genqlient#280
- [@&open-telemetry#8203;zholti](https://togithub.com/zholti) made their first
contribution in
[Khan/genqlient#291
- [@&open-telemetry#8203;zzh8829](https://togithub.com/zzh8829) made their first
contribution in
[Khan/genqlient#310

**Full Changelog**:
Khan/genqlient@v0.6.0...v0.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Andrzej Stencel <astencel@sumologic.com>
XinRanZhAWS pushed a commit to XinRanZhAWS/opentelemetry-collector-contrib that referenced this pull request Mar 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/Khan/genqlient](https://togithub.com/Khan/genqlient) |
`v0.6.0` -> `v0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fKhan%2fgenqlient/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fKhan%2fgenqlient/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fKhan%2fgenqlient/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fKhan%2fgenqlient/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>Khan/genqlient (github.com/Khan/genqlient)</summary>

### [`v0.7.0`](https://togithub.com/Khan/genqlient/releases/tag/v0.7.0)

[Compare
Source](https://togithub.com/Khan/genqlient/compare/v0.6.0...v0.7.0)

In addition to several new features and bugfixes, along with this
release comes reorganized
[documentation](https://togithub.com/Khan/genqlient/blob/main/docs) for
genqlient. Note that genqlient now requires Go 1.20 or higher, and is
tested through Go 1.22.

#### What's Changed

- Add "generic" option to the "optional" configuration for handling
nullable types by
[@&open-telemetry#8203;DylanRJohnston](https://togithub.com/DylanRJohnston) in
[Khan/genqlient#252
- Documentation tweaks relating to releases by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#271
- Add some better tests for use_struct_references by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#273
- Add an option to handle enums with ugly casing by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#270
- Add some more tests for config validation, and fix some gaps by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#274
- Add consideration for pointer false directive when optional: pointer
configuration option is used by
[@&open-telemetry#8203;spencermurray](https://togithub.com/spencermurray) in
[Khan/genqlient#280
- Update gqlparser and gqlgen dependencies by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#282
- Update gqlparser to omit comments by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#284
- bugfix: local variable 'data' colliding with argument name by
[@&open-telemetry#8203;zholti](https://togithub.com/zholti) in
[Khan/genqlient#291
- Pin lint workflow's Go version by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#311
- Upgrade golangci-lint and which go we run it with by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#314
- fix implementation type generation for fragment on a union by
[@&open-telemetry#8203;zzh8829](https://togithub.com/zzh8829) in
[Khan/genqlient#310
- Support more valid graphql file extensions by
[@&open-telemetry#8203;zzh8829](https://togithub.com/zzh8829) in
[Khan/genqlient#309
- Add tests on Go 1.22, and upgrade x/tools to make them work by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#315
- Update gqlgen to latest by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#317
- move genqlient Go module to 1.20 by
[@&open-telemetry#8203;StevenACoffman](https://togithub.com/StevenACoffman) in
[Khan/genqlient#318
- Improve package-sniffing and bind correctly to types in the same
package by [@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft)
in
[Khan/genqlient#316
- Reorganize and improve documentation by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#322
- Fix non-deterministic generated code involving interfaces and
fragments. by [@&open-telemetry#8203;csilvers](https://togithub.com/csilvers) in
[Khan/genqlient#323
- Release v0.7.0 by
[@&open-telemetry#8203;benjaminjkraft](https://togithub.com/benjaminjkraft) in
[Khan/genqlient#324

#### New Contributors

- [@&open-telemetry#8203;DylanRJohnston](https://togithub.com/DylanRJohnston) made
their first contribution in
[Khan/genqlient#252
- [@&open-telemetry#8203;spencermurray](https://togithub.com/spencermurray) made their
first contribution in
[Khan/genqlient#280
- [@&open-telemetry#8203;zholti](https://togithub.com/zholti) made their first
contribution in
[Khan/genqlient#291
- [@&open-telemetry#8203;zzh8829](https://togithub.com/zzh8829) made their first
contribution in
[Khan/genqlient#310

**Full Changelog**:
Khan/genqlient@v0.6.0...v0.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Andrzej Stencel <astencel@sumologic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants