Skip to content

Commit

Permalink
feat: Upgrade stream sdk (#3105)
Browse files Browse the repository at this point in the history
<!-- Feel free to delete comments as you fill this in -->
- generate object assertions
- add helpers client
- rename methods in table helpers client for consistency
- adjust and regenerate sdk
- remove fields that are not present in Snowflake
- add LastQueryId function - it's needed to test stream's AT|BEFORE
- add missing tests
- clean up integration tests
- add some external table helper functions
<!-- summary of changes -->

## Test Plan
<!-- detail ways in which this PR has been tested or needs to be tested
-->
* [x] integration tests
<!-- add more below if you think they are relevant -->
* [x] unit tests

## References
<!-- issues documentation links, etc  -->
https://docs.snowflake.com/en/sql-reference/sql/create-stream

## TODO
Adjust SHOW field types. Add new resources for each type of stream.
Adjust stream data source.
  • Loading branch information
sfc-gh-jmichalak authored Sep 30, 2024
1 parent 08ae072 commit ad5fa11
Show file tree
Hide file tree
Showing 36 changed files with 1,092 additions and 449 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ var allStructs = []SdkObjectDef{
ObjectType: sdk.ObjectTypeTask,
ObjectStruct: sdk.Task{},
},
{
IdType: "sdk.SchemaObjectIdentifier",
ObjectType: sdk.ObjectTypeStream,
ObjectStruct: sdk.Stream{},
},
}

func GetSdkObjectDetails() []genhelpers.SdkObjectDetails {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package objectassert

import (
"fmt"
"testing"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
)

func (s *StreamAssert) HasTableId(expected string) *StreamAssert {
s.AddAssertion(func(t *testing.T, o *sdk.Stream) error {
t.Helper()
if o.TableName == nil {
return fmt.Errorf("expected table name to have value; got: nil")
}
gotTableId, err := sdk.ParseSchemaObjectIdentifier(*o.TableName)
if err != nil {
return err
}
if gotTableId.FullyQualifiedName() != expected {
return fmt.Errorf("expected table name: %v; got: %v", expected, *o.TableName)
}
return nil
})
return s
}

func (s *StreamAssert) HasStageName(expected string) *StreamAssert {
s.AddAssertion(func(t *testing.T, o *sdk.Stream) error {
t.Helper()
if o.TableName == nil {
return fmt.Errorf("expected table name to have value; got: nil")
}
if *o.TableName != expected {
return fmt.Errorf("expected table name: %v; got: %v", expected, *o.TableName)
}
return nil
})
return s
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit ad5fa11

Please sign in to comment.