diff options
author | Michael Muré <batolettre@gmail.com> | 2022-07-25 13:16:16 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2022-07-25 13:27:17 +0200 |
commit | 3d454d9dc8ba2409046c0938618a70864e6eb8ef (patch) | |
tree | 8745f656cc8218654632ce003f997a39988d3043 /bridge/gitlab | |
parent | 2ade8fb1d570ddcb4aedc9386af46d208b129daa (diff) | |
download | git-bug-3d454d9dc8ba2409046c0938618a70864e6eb8ef.tar.gz |
entity/dag: proper base operation for simplified implementation
- reduce boilerplace necessary to implement an operation
- consolidate what an operation is in the core, which in turn pave the way for a generic cache layer mechanism
- avoid the previously complex unmarshalling process
- support operation metadata from the core
- simplified testing
Diffstat (limited to 'bridge/gitlab')
-rw-r--r-- | bridge/gitlab/export.go | 3 | ||||
-rw-r--r-- | bridge/gitlab/export_test.go | 7 | ||||
-rw-r--r-- | bridge/gitlab/import_test.go | 9 |
3 files changed, 11 insertions, 8 deletions
diff --git a/bridge/gitlab/export.go b/bridge/gitlab/export.go index e6587eba..bb83662e 100644 --- a/bridge/gitlab/export.go +++ b/bridge/gitlab/export.go @@ -15,6 +15,7 @@ import ( "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" "github.com/MichaelMure/git-bug/entity" + "github.com/MichaelMure/git-bug/entity/dag" "github.com/MichaelMure/git-bug/identity" ) @@ -256,7 +257,7 @@ func (ge *gitlabExporter) exportBug(ctx context.Context, b *cache.BugCache, out labelSet := make(map[string]struct{}) for _, op := range snapshot.Operations[1:] { // ignore SetMetadata operations - if _, ok := op.(*bug.SetMetadataOperation); ok { + if _, ok := op.(dag.OperationDoesntChangeSnapshot); ok { continue } diff --git a/bridge/gitlab/export_test.go b/bridge/gitlab/export_test.go index cca4c6ca..b48254e6 100644 --- a/bridge/gitlab/export_test.go +++ b/bridge/gitlab/export_test.go @@ -11,11 +11,12 @@ import ( "github.com/xanzy/go-gitlab" + "github.com/MichaelMure/git-bug/entity/dag" + "github.com/stretchr/testify/require" "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" "github.com/MichaelMure/git-bug/repository" "github.com/MichaelMure/git-bug/util/interrupt" @@ -247,7 +248,7 @@ func TestGitlabPushPull(t *testing.T) { // verify operation have correct metadata for _, op := range tt.bug.Snapshot().Operations { // Check if the originals operations (*not* SetMetadata) are tagged properly - if _, ok := op.(*bug.SetMetadataOperation); !ok { + if _, ok := op.(dag.OperationDoesntChangeSnapshot); !ok { _, haveIDMetadata := op.GetMetadata(metaKeyGitlabId) require.True(t, haveIDMetadata) @@ -272,7 +273,7 @@ func TestGitlabPushPull(t *testing.T) { require.True(t, ok) require.Equal(t, issueOrigin, target) - //TODO: maybe more tests to ensure bug final state + // TODO: maybe more tests to ensure bug final state }) } } diff --git a/bridge/gitlab/import_test.go b/bridge/gitlab/import_test.go index 676e8749..a4a9ce15 100644 --- a/bridge/gitlab/import_test.go +++ b/bridge/gitlab/import_test.go @@ -13,6 +13,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core/auth" "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entity/dag" "github.com/MichaelMure/git-bug/identity" "github.com/MichaelMure/git-bug/repository" "github.com/MichaelMure/git-bug/util/interrupt" @@ -49,7 +50,7 @@ func TestGitlabImport(t *testing.T) { name: "simple issue", url: "https://gitlab.com/git-bug/test/-/issues/1", bug: &bug.Snapshot{ - Operations: []bug.Operation{ + Operations: []dag.Operation{ bug.NewCreateOp(author, 0, "simple issue", "initial comment", nil), bug.NewAddCommentOp(author, 0, "first comment", nil), bug.NewAddCommentOp(author, 0, "second comment", nil), @@ -60,7 +61,7 @@ func TestGitlabImport(t *testing.T) { name: "empty issue", url: "https://gitlab.com/git-bug/test/-/issues/2", bug: &bug.Snapshot{ - Operations: []bug.Operation{ + Operations: []dag.Operation{ bug.NewCreateOp(author, 0, "empty issue", "", nil), }, }, @@ -69,7 +70,7 @@ func TestGitlabImport(t *testing.T) { name: "complex issue", url: "https://gitlab.com/git-bug/test/-/issues/3", bug: &bug.Snapshot{ - Operations: []bug.Operation{ + Operations: []dag.Operation{ bug.NewCreateOp(author, 0, "complex issue", "initial comment", nil), bug.NewAddCommentOp(author, 0, "### header\n\n**bold**\n\n_italic_\n\n> with quote\n\n`inline code`\n\n```\nmultiline code\n```\n\n- bulleted\n- list\n\n1. numbered\n1. list\n\n- [ ] task\n- [x] list\n\n@MichaelMure mention\n\n#2 reference issue\n#3 auto-reference issue", nil), bug.NewSetTitleOp(author, 0, "complex issue edited", "complex issue"), @@ -86,7 +87,7 @@ func TestGitlabImport(t *testing.T) { name: "editions", url: "https://gitlab.com/git-bug/test/-/issues/4", bug: &bug.Snapshot{ - Operations: []bug.Operation{ + Operations: []dag.Operation{ bug.NewCreateOp(author, 0, "editions", "initial comment edited", nil), bug.NewAddCommentOp(author, 0, "first comment edited", nil), }, |