Skip to content
This repository has been archived by the owner on Aug 12, 2022. It is now read-only.

Commit

Permalink
fix: Null cq_id error (#295)
Browse files Browse the repository at this point in the history
  • Loading branch information
shimonp21 authored May 31, 2022
1 parent 3deb3ab commit b41a56c
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
6 changes: 5 additions & 1 deletion provider/execution/execution.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,11 @@ func (e TableExecutor) resolveResourceValues(ctx context.Context, meta schema.Cl
// call PostRowResolver if defined after columns have been resolved
if e.Table.PostResourceResolver != nil {
if err := e.Table.PostResourceResolver(ctx, meta, resource); err != nil {
return diags.Add(e.handleResolveError(meta, resource, err, diag.WithSummary("post resource resolver failed for %q", e.Table.Name)))
diags = diags.Add(e.handleResolveError(meta, resource, err, diag.WithSummary("post resource resolver failed for %q", e.Table.Name)))

if diags.HasErrors() {
return diags
}
}
}
// Finally, resolve columns internal to the SDK
Expand Down
41 changes: 41 additions & 0 deletions provider/execution/execution_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ var (
diag.NewBaseError(nil, diag.RESOLVING, diag.WithResourceName(resource.TableName()), diag.WithSummary("some error 2")),
}
}
postResourceResolverWarning = func(ctx context.Context, meta schema.ClientMeta, resource *schema.Resource) error {
return diag.Diagnostics{
diag.NewBaseError(nil, diag.RESOLVING, diag.WithResourceName(resource.TableName()), diag.WithSummary("some warning"), diag.WithSeverity(diag.WARNING)),
}
}

timeoutResolver = func(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- interface{}) error {
select {
case <-ctx.Done():
Expand Down Expand Up @@ -464,6 +470,41 @@ func TestTableExecutor_Resolve(t *testing.T) {
},
},
},
{
Name: "post_resource_resolver_warning",
SetupStorage: func(t *testing.T) Storage {
db := new(DatabaseMock)
db.On("RemoveStaleData", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil)
db.On("Dialect").Return(schema.PostgresDialect{})
db.On("CopyFrom", mock.Anything, mock.Anything, true, map[string]interface{}(nil)).Return(nil).Run(
func(args mock.Arguments) {
resources := args.Get(1).(schema.Resources)
if !assert.Greater(t, len(resources), 0) {
return
}

assert.NotNil(t, resources[0].Get("cq_id"))
})
return db
},
Table: &schema.Table{
Name: "post_resource_resolver_warning_table",
Resolver: returnValueResolver,
Columns: commonColumns,
PostResourceResolver: postResourceResolverWarning,
},
ExpectedResourceCount: 1,
ErrorExpected: true,
ExpectedDiags: []diag.FlatDiag{
{
Err: "some warning",
Resource: "post_resource_resolver_warning_table",
Severity: diag.WARNING,
Type: diag.RESOLVING,
Summary: "some warning",
},
},
},
{
Name: "failing_column",
SetupStorage: func(t *testing.T) Storage {
Expand Down

0 comments on commit b41a56c

Please sign in to comment.