1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-28 13:48:49 +08:00
Mainflux.mainflux/pkg/sdk/go/setup_test.go
b1ackd0t 5e060d5620
NOISSUE - Add More Linters (#1924)
* Fix linting errors

Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>

* feat(linters): add ineffassign linter

This commit adds the `ineffassign` linter to the project's `.golangci.yml` configuration file. The `ineffassign` linter helps identify and flag assignments to variables that are never used, helping to improve code quality and maintainability.

Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>

* Add extra linters

Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>

* feat(golangci): Add header check

- Added goheader check to ensure all files have license headers
- Added build tags for "nats" in the .golangci.yml file to include the necessary dependencies for the "nats" package during the build process.
- Also, increased the maximum number of issues per linter and the maximum number of same issues reported by the linter to improve the code quality analysis.

Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>

* feat(.golangci.yml): Add new linters

Add the following new linters to the .golangci.yml configuration file:
- asasalint
- asciicheck
- bidichk
- contextcheck
- decorder
- dogsled
- errchkjson
- errname
- execinquery
- exportloopref
- ginkgolinter
- gocheckcompilerdirectives

These linters will help improve code quality and catch potential issues during the code review process.

Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>

---------

Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
2023-10-16 11:43:33 +02:00

357 lines
9.0 KiB
Go

// Copyright (c) Mainflux
// SPDX-License-Identifier: Apache-2.0
package sdk_test
// import (
// "context"
// "fmt"
// "os"
// "regexp"
// "testing"
// "time"
// mfclients "github.com/mainflux/mainflux/pkg/clients"
// "github.com/mainflux/mainflux/pkg/errors"
// mfgroups "github.com/mainflux/mainflux/pkg/groups"
// sdk "github.com/mainflux/mainflux/pkg/sdk/go"
// "github.com/mainflux/mainflux/pkg/uuid"
// tpolicies "github.com/mainflux/mainflux/things/policies"
// "github.com/mainflux/mainflux/users/clients"
// umocks "github.com/mainflux/mainflux/users/clients/mocks"
// "github.com/mainflux/mainflux/users/hasher"
// upolicies "github.com/mainflux/mainflux/users/policies"
// "github.com/stretchr/testify/assert"
// "github.com/stretchr/testify/mock"
// )
// const (
// invalidIdentity = "invalididentity"
// Identity = "identity"
// secret = "strongsecret"
// token = "token"
// invalidToken = "invalidtoken"
// contentType = "application/senml+json"
// )
// var (
// idProvider = uuid.New()
// phasher = hasher.New()
// validMetadata = sdk.Metadata{"role": "client"}
// user = sdk.User{
// Name: "clientname",
// Tags: []string{"tag1", "tag2"},
// Credentials: sdk.Credentials{Identity: "clientidentity", Secret: secret},
// Metadata: validMetadata,
// Status: mfclients.EnabledStatus.String(),
// }
// thing = sdk.Thing{
// Name: "thingname",
// Tags: []string{"tag1", "tag2"},
// Credentials: sdk.Credentials{Identity: "clientidentity", Secret: generateUUID(&testing.T{})},
// Metadata: validMetadata,
// Status: mfclients.EnabledStatus.String(),
// }
// description = "shortdescription"
// gName = "groupname"
// limit uint64 = 5
// offset uint64 = 0
// total uint64 = 200
// authoritiesObj = "authorities"
// subject = generateUUID(&testing.T{})
// object = generateUUID(&testing.T{})
// emailer = umocks.NewEmailer()
// passRegex = regexp.MustCompile("^.{8,}$")
// accessDuration = time.Minute * 1
// refreshDuration = time.Minute * 10
// )
// func generateValidToken(t *testing.T, svc clients.Service, cRepo *umocks.Repository) string {
// client := mfclients.Client{
// ID: generateUUID(t),
// Name: "validtoken",
// Credentials: mfclients.Credentials{
// Identity: "validtoken",
// Secret: secret,
// },
// Role: mfclients.AdminRole,
// Status: mfclients.EnabledStatus,
// }
// rclient := client
// rclient.Credentials.Secret, _ = phasher.Hash(client.Credentials.Secret)
// repoCall := cRepo.On("RetrieveByIdentity", context.Background(), mock.Anything).Return(rclient, nil)
// token, err := svc.IssueToken(context.Background(), client.Credentials.Identity, client.Credentials.Secret)
// assert.True(t, errors.Contains(err, nil), fmt.Sprintf("Create token expected nil got %s\n", err))
// repoCall.Unset()
// return token.AccessToken
// }
// func generateUUID(t *testing.T) string {
// ulid, err := idProvider.ID()
// assert.Nil(t, err, fmt.Sprintf("unexpected error: %s", err))
// return ulid
// }
// func convertClientsPage(cp sdk.UsersPage) mfclients.ClientsPage {
// return mfclients.ClientsPage{
// Clients: convertClients(cp.Users),
// }
// }
// func convertThingsPage(cp sdk.ThingsPage) mfclients.ClientsPage {
// return mfclients.ClientsPage{
// Clients: convertThings(cp.Things),
// }
// }
// func convertClients(cs []sdk.User) []mfclients.Client {
// ccs := []mfclients.Client{}
// for _, c := range cs {
// ccs = append(ccs, convertClient(c))
// }
// return ccs
// }
// func convertThings(cs []sdk.Thing) []mfclients.Client {
// ccs := []mfclients.Client{}
// for _, c := range cs {
// ccs = append(ccs, convertThing(c))
// }
// return ccs
// }
// func convertGroups(cs []sdk.Group) []mfgroups.Group {
// cgs := []mfgroups.Group{}
// for _, c := range cs {
// cgs = append(cgs, convertGroup(c))
// }
// return cgs
// }
// func convertChannels(cs []sdk.Channel) []mfgroups.Group {
// cgs := []mfgroups.Group{}
// for _, c := range cs {
// cgs = append(cgs, convertChannel(c))
// }
// return cgs
// }
// func convertUserPolicies(cs []sdk.Policy) []upolicies.Policy {
// ccs := []upolicies.Policy{}
// for _, c := range cs {
// ccs = append(ccs, convertUserPolicy(c))
// }
// return ccs
// }
// func convertUserPolicy(sp sdk.Policy) upolicies.Policy {
// return upolicies.Policy{
// OwnerID: sp.OwnerID,
// Subject: sp.Subject,
// Object: sp.Object,
// Actions: sp.Actions,
// CreatedAt: sp.CreatedAt,
// UpdatedAt: sp.UpdatedAt,
// }
// }
// func convertThingPolicy(sp sdk.Policy) tpolicies.Policy {
// return tpolicies.Policy{
// OwnerID: sp.OwnerID,
// Subject: sp.Subject,
// Object: sp.Object,
// Actions: sp.Actions,
// CreatedAt: sp.CreatedAt,
// UpdatedAt: sp.UpdatedAt,
// }
// }
// func convertMembershipsPage(m sdk.MembershipsPage) mfgroups.Memberships {
// return mfgroups.Memberships{
// PageMeta: mfgroups.PageMeta{
// Limit: m.Limit,
// Total: m.Total,
// Offset: m.Offset,
// },
// Groups: convertMemberships(m.Memberships),
// }
// }
// func convertChannelsMembershipPage(m sdk.ChannelsPage) mfgroups.Memberships {
// return mfgroups.Memberships{
// PageMeta: mfgroups.PageMeta{
// Limit: m.Limit,
// Total: m.Total,
// Offset: m.Offset,
// },
// Groups: convertChannels(m.Channels),
// }
// }
// func convertClientPage(p sdk.PageMetadata) mfclients.Page {
// if p.Status == "" {
// p.Status = mfclients.EnabledStatus.String()
// }
// status, err := mfclients.ToStatus(p.Status)
// if err != nil {
// return mfclients.Page{}
// }
// return mfclients.Page{
// Status: status,
// Total: p.Total,
// Offset: p.Offset,
// Limit: p.Limit,
// Name: p.Name,
// Action: p.Action,
// Tag: p.Tag,
// Metadata: mfclients.Metadata(p.Metadata),
// }
// }
// func convertMemberships(gs []sdk.Group) []mfgroups.Group {
// cg := []mfgroups.Group{}
// for _, g := range gs {
// cg = append(cg, convertGroup(g))
// }
// return cg
// }
// func convertGroup(g sdk.Group) mfgroups.Group {
// if g.Status == "" {
// g.Status = mfclients.EnabledStatus.String()
// }
// status, err := mfclients.ToStatus(g.Status)
// if err != nil {
// return mfgroups.Group{}
// }
// return mfgroups.Group{
// ID: g.ID,
// Owner: g.OwnerID,
// Parent: g.ParentID,
// Name: g.Name,
// Description: g.Description,
// Metadata: mfclients.Metadata(g.Metadata),
// Level: g.Level,
// Path: g.Path,
// Children: convertChildren(g.Children),
// CreatedAt: g.CreatedAt,
// UpdatedAt: g.UpdatedAt,
// Status: status,
// }
// }
// func convertChildren(gs []*sdk.Group) []*mfgroups.Group {
// cg := []*mfgroups.Group{}
// if len(gs) == 0 {
// return cg
// }
// for _, g := range gs {
// insert := convertGroup(*g)
// cg = append(cg, &insert)
// }
// return cg
// }
// func convertClient(c sdk.User) mfclients.Client {
// if c.Status == "" {
// c.Status = mfclients.EnabledStatus.String()
// }
// status, err := mfclients.ToStatus(c.Status)
// if err != nil {
// return mfclients.Client{}
// }
// return mfclients.Client{
// ID: c.ID,
// Name: c.Name,
// Tags: c.Tags,
// Owner: c.Owner,
// Credentials: mfclients.Credentials(c.Credentials),
// Metadata: mfclients.Metadata(c.Metadata),
// CreatedAt: c.CreatedAt,
// UpdatedAt: c.UpdatedAt,
// Status: status,
// }
// }
// func convertThing(c sdk.Thing) mfclients.Client {
// if c.Status == "" {
// c.Status = mfclients.EnabledStatus.String()
// }
// status, err := mfclients.ToStatus(c.Status)
// if err != nil {
// return mfclients.Client{}
// }
// return mfclients.Client{
// ID: c.ID,
// Name: c.Name,
// Tags: c.Tags,
// Owner: c.Owner,
// Credentials: mfclients.Credentials(c.Credentials),
// Metadata: mfclients.Metadata(c.Metadata),
// CreatedAt: c.CreatedAt,
// UpdatedAt: c.UpdatedAt,
// Status: status,
// }
// }
// func convertChannel(g sdk.Channel) mfgroups.Group {
// if g.Status == "" {
// g.Status = mfclients.EnabledStatus.String()
// }
// status, err := mfclients.ToStatus(g.Status)
// if err != nil {
// return mfgroups.Group{}
// }
// return mfgroups.Group{
// ID: g.ID,
// Owner: g.OwnerID,
// Parent: g.ParentID,
// Name: g.Name,
// Description: g.Description,
// Metadata: mfclients.Metadata(g.Metadata),
// Level: g.Level,
// Path: g.Path,
// CreatedAt: g.CreatedAt,
// UpdatedAt: g.UpdatedAt,
// Status: status,
// }
// }
// func convertUserPolicyPage(pp sdk.PolicyPage) upolicies.PolicyPage {
// return upolicies.PolicyPage{
// Page: upolicies.Page{
// Limit: pp.Limit,
// Total: pp.Total,
// Offset: pp.Offset,
// },
// Policies: convertUserPolicies(pp.Policies),
// }
// }
// func TestMain(m *testing.M) {
// exitCode := m.Run()
// os.Exit(exitCode)
// }