github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/document/fixtures_test.go (about)

     1  package document_test
     2  
     3  import (
     4  	"database/sql"
     5  	"time"
     6  
     7  	"github.com/kyma-incubator/compass/components/director/internal/domain/document"
     8  	"github.com/kyma-incubator/compass/components/director/internal/repo"
     9  
    10  	"github.com/kyma-incubator/compass/components/director/internal/model"
    11  	"github.com/kyma-incubator/compass/components/director/pkg/graphql"
    12  )
    13  
    14  var (
    15  	docKind              = "fookind"
    16  	docTitle             = "footitle"
    17  	docData              = "foodata"
    18  	docDisplayName       = "foodisplay"
    19  	docDescription       = "foodesc"
    20  	docCLOB              = graphql.CLOB(docData)
    21  	appID                = "appID"
    22  	appTemplateVersionID = "appTemplateVersionID"
    23  	fixedTimestamp       = time.Now()
    24  	docID                = "foo"
    25  )
    26  
    27  func fixModelDocument(id, bundleID string) *model.Document {
    28  	return &model.Document{
    29  		BundleID:    bundleID,
    30  		Title:       docTitle,
    31  		DisplayName: docDisplayName,
    32  		Description: docDescription,
    33  		Format:      model.DocumentFormatMarkdown,
    34  		Kind:        &docKind,
    35  		Data:        &docData,
    36  		BaseEntity: &model.BaseEntity{
    37  			ID:        id,
    38  			Ready:     true,
    39  			Error:     nil,
    40  			CreatedAt: &fixedTimestamp,
    41  			UpdatedAt: &time.Time{},
    42  			DeletedAt: &time.Time{},
    43  		},
    44  	}
    45  }
    46  
    47  func fixModelDocumentForApp(id, bundleID string) *model.Document {
    48  	doc := fixModelDocument(id, bundleID)
    49  	doc.AppID = &appID
    50  
    51  	return doc
    52  }
    53  
    54  func fixModelDocumentForAppTemplateVersion(id, bundleID string) *model.Document {
    55  	doc := fixModelDocument(id, bundleID)
    56  	doc.ApplicationTemplateVersionID = &appTemplateVersionID
    57  
    58  	return doc
    59  }
    60  
    61  func fixEntityDocument(id, bundleID string) *document.Entity {
    62  	return &document.Entity{
    63  		BndlID:      bundleID,
    64  		Title:       docTitle,
    65  		DisplayName: docDisplayName,
    66  		Description: docDescription,
    67  		Format:      string(model.DocumentFormatMarkdown),
    68  		Kind:        repo.NewValidNullableString(docKind),
    69  		Data:        repo.NewValidNullableString(docData),
    70  		BaseEntity: &repo.BaseEntity{
    71  			ID:        id,
    72  			Ready:     true,
    73  			Error:     sql.NullString{},
    74  			CreatedAt: &fixedTimestamp,
    75  			UpdatedAt: &time.Time{},
    76  			DeletedAt: &time.Time{},
    77  		},
    78  	}
    79  }
    80  
    81  func fixEntityDocumentForApp(id, bundleID string) *document.Entity {
    82  	entity := fixEntityDocument(id, bundleID)
    83  	entity.AppID = repo.NewValidNullableString(appID)
    84  	return entity
    85  }
    86  
    87  func fixEntityDocumentForAppTemplateVersion(id, bundleID string) *document.Entity {
    88  	entity := fixEntityDocument(id, bundleID)
    89  	entity.ApplicationTemplateVersionID = repo.NewValidNullableString(appTemplateVersionID)
    90  	return entity
    91  }
    92  
    93  func fixGQLDocument(id, bundleID string) *graphql.Document {
    94  	return &graphql.Document{
    95  		BundleID:    bundleID,
    96  		Title:       docTitle,
    97  		DisplayName: docDisplayName,
    98  		Description: docDescription,
    99  		Format:      graphql.DocumentFormatMarkdown,
   100  		Kind:        &docKind,
   101  		Data:        &docCLOB,
   102  		BaseEntity: &graphql.BaseEntity{
   103  			ID:        id,
   104  			Ready:     true,
   105  			Error:     nil,
   106  			CreatedAt: timeToTimestampPtr(fixedTimestamp),
   107  			UpdatedAt: timeToTimestampPtr(time.Time{}),
   108  			DeletedAt: timeToTimestampPtr(time.Time{}),
   109  		},
   110  	}
   111  }
   112  
   113  func fixModelDocumentInput(id string) *model.DocumentInput {
   114  	return &model.DocumentInput{
   115  		Title:       docTitle,
   116  		DisplayName: docDisplayName,
   117  		Description: docDescription,
   118  		Format:      model.DocumentFormatMarkdown,
   119  		Kind:        &docKind,
   120  		Data:        &docData,
   121  	}
   122  }
   123  
   124  func fixModelDocumentInputWithFetchRequest(fetchRequestURL string) *model.DocumentInput {
   125  	return &model.DocumentInput{
   126  		Title:       docTitle,
   127  		DisplayName: docDisplayName,
   128  		Description: docDescription,
   129  		Format:      model.DocumentFormatMarkdown,
   130  		Kind:        &docKind,
   131  		Data:        &docData,
   132  		FetchRequest: &model.FetchRequestInput{
   133  			URL: fetchRequestURL,
   134  		},
   135  	}
   136  }
   137  
   138  func fixModelFetchRequest(id, url string, timestamp time.Time) *model.FetchRequest {
   139  	return &model.FetchRequest{
   140  		ID:     id,
   141  		URL:    url,
   142  		Auth:   nil,
   143  		Mode:   model.FetchModeSingle,
   144  		Filter: nil,
   145  		Status: &model.FetchRequestStatus{
   146  			Condition: model.FetchRequestStatusConditionInitial,
   147  			Timestamp: timestamp,
   148  		},
   149  		ObjectType: model.DocumentFetchRequestReference,
   150  		ObjectID:   "foo",
   151  	}
   152  }
   153  
   154  func fixGQLFetchRequest(url string, timestamp time.Time) *graphql.FetchRequest {
   155  	return &graphql.FetchRequest{
   156  		Filter: nil,
   157  		Mode:   graphql.FetchModeSingle,
   158  		Auth:   nil,
   159  		URL:    url,
   160  		Status: &graphql.FetchRequestStatus{
   161  			Timestamp: graphql.Timestamp(timestamp),
   162  			Condition: graphql.FetchRequestStatusConditionInitial,
   163  		},
   164  	}
   165  }
   166  
   167  func fixGQLDocumentInput(id string) *graphql.DocumentInput {
   168  	return &graphql.DocumentInput{
   169  		Title:       docTitle,
   170  		DisplayName: docDisplayName,
   171  		Description: docDescription,
   172  		Format:      graphql.DocumentFormatMarkdown,
   173  		Kind:        &docKind,
   174  		Data:        &docCLOB,
   175  	}
   176  }
   177  
   178  func fixModelBundle(id string) *model.Bundle {
   179  	return &model.Bundle{
   180  		ApplicationID: &appID,
   181  		Name:          "name",
   182  		BaseEntity: &model.BaseEntity{
   183  			ID:        id,
   184  			Ready:     true,
   185  			Error:     nil,
   186  			CreatedAt: &fixedTimestamp,
   187  			UpdatedAt: &time.Time{},
   188  			DeletedAt: &time.Time{},
   189  		},
   190  	}
   191  }
   192  
   193  func timeToTimestampPtr(time time.Time) *graphql.Timestamp {
   194  	t := graphql.Timestamp(time)
   195  	return &t
   196  }