Comments (8)
Thank you @calvincestari ! That worked 👍
Whilst it fixes my problem, I wonder if we still would want the ability to specify whether the import
of the generated mocks should have @testable
in cases where we dont the mocked models to be public
?
Using the Mock
s would actually be beneficial but cannot be used without public
graphql models.
from apollo-ios.
Is adding another AccessModifier case called testable that we can pass to the existing testMocks.absolute config? Although this might also not be ideal because it means you could actually create GQL models with @testable as well and that might not make any sense 🤔
TestMockFileOutput
and SchemaTypesFileOutput.ModuleType
share the same enum so I don't think an internal
case will work there and it is worth duplication of the enum when we can work with assumptions instead?
@AnthonyMDev that could work if that is the assumption we take that if the accessModifier for the GQL models are not public, then the mocks are purely for testing.
Our view is that test mocks are purely for testing; that was the intent of their design. There is also a future where test mocks are deprecated.
from apollo-ios.
We used to be able to create test data for the generated GraphQL models using the initialiser, but as referred to in the migration document, we are meant to now use Mocks and ApolloTestSupport instead.
I think the selection set initializers config option was built after the migration guides. That may be what you're looking for?
from apollo-ios.
@michaelloo do you mind sharing your codegen configuration so I can see how you're putting things together.
from apollo-ios.
Yeah, I do agree with you @michaelloo. I'm thinking we can determine if the generated models will be public
from the configuration and just know to add @testable
or not without needing another new config option.
from apollo-ios.
@calvincestari here is my latest config (with some obscured params):
{
"schemaNamespace" : "XXXSchema",
"schemaDownload": {
"downloadMethod": {
"introspection": {
"endpointURL": "some.url/graphql",
"httpMethod": { "POST": {} },
"includeDeprecatedInputValues": false,
"outputFormat": "JSON"
}
},
"downloadTimeout": 60,
"outputPath": "./graphql/"
},
"input" : {
"operationSearchPaths" : ["**/*.graphql"],
"schemaSearchPaths" : ["**/schema.json"]
},
"output" : {
"testMocks" : { "none" : {} },
"schemaTypes" : {
"path" : "./GeneratedFiles",
"moduleType" : { "embeddedInTarget" : { "name": "XXX" } }
},
"operations" : { "inSchemaModule" : {} }
},
"options": {
"cocoapodsCompatibleImportStatements": true,
"selectionSetInitializers": {
"localCacheMutations" : true,
"namedFragments" : true,
"operations" : true
}
}
}
I had "testMocks" with "absolute" configuration in there when trying the Mock
out
@AnthonyMDev that could work if that is the assumption we take that if the accessModifier for the GQL models are not public
, then the mocks are purely for testing. That will couple them together more but might not be a bad thing I guess.
Is adding another AccessModifier case called testable
that we can pass to the existing testMocks.absolute
config? Although this might also not be ideal because it means you could actually create GQL models with @testable
as well and that might not make any sense 🤔
from apollo-ios.
This should be fixed by #362 which will be released within the next week.
If you are still experiencing this bug once that is released, please let us know!
from apollo-ios.
Do you have any feedback for the maintainers? Please tell us by taking a one-minute survey. Your responses will help us understand Apollo iOS usage and allow us to serve you better.
from apollo-ios.
Related Issues (20)
- How should I continue after handleErrorAsync inside a custom ApolloErrorInterceptor? HOT 5
- Defining a CustomScalarType which is [String:Any] HOT 12
- Deprecate `legacyResponse` and prepare for partial/incremental caching HOT 2
- Custom scalar isn't being respected HOT 7
- @defer issue HOT 8
- Documentation for @import directive. HOT 9
- Add debugDescription api for Apollo generated types HOT 1
- Circular reference Build Error HOT 6
- Invalid redeclaration of synthesized property '_id' HOT 7
- Split/Hybrid Caching between InMemory and SQL review and thoughts HOT 2
- ID as a custom scalar HOT 6
- Bug: Cache writes of incremental responses uses incorrect parent key (custom cache keys)
- Incorrect PR link in release notes for version 1.11.0 HOT 2
- apollo-ios-cli deprecated --schema-name HOT 2
- Confused about cache behavior HOT 2
- CLI fails to run with 1.12.0 HOT 4
- Response value getting nil HOT 2
- Version mismatch between package and CLI HOT 3
- Pagination: Pager does not provide updates during a refresh HOT 6
- Slow compilation speed when migrating from 0.x to 1.12.2 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apollo-ios.