fix: module context should be immutable #1400
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes: #1398
Now a ModuleContext is built using the following functions:
New(moduleName)
func (m ModuleContext) Update(configs map[string][]byte, secrets map[string][]byte, databases map[string]Database) ModuleContext
func (m ModuleContext) UpdateForTesting(mockVerbs map[schema.RefKey]MockVerb, allowDirectVerbBehavior bool) ModuleContext
func (m ModuleContext) UpdateFromEnvironment(ctx context.Context) (ModuleContext, error)
ftltest
now usesftltest.Options
as an opaque way of building up state to then create a ModuleContext with the above functions. Before we were passing aroundcontext.Context
and mutating the ModuleContext directly each anything was changed.And now everything uses the ModuleContext struct directly, rather than with a pointer.
This change won't have any effect on how users write their module unit tests.