Testing

🚦Gosip automated testing

In a clone or fork.

Authentication testing

Create auth credentials store files in ./config folder for corresponding strategies:

See samples.

go test ./... -v -race -count=1

Not provided auth configs and therefore strategies are ignored and not skipped in tests.

API integration tests

Create auth credentials store files in ./config/integration folder for corresponding environments:

  • private.spo.json

  • private.2013.json // 2013 has its nuances with OData mod and not supported methods

SPAUTH_ENVCODE=spo go test ./api/... -v -race -count=1
SPAUTH_ENVCODE=2013 go test ./api/... -v -race -count=1

API integration tests are mostly targeted to SharePoint Online and not regularly processed on the legacy versions of the platform so you can face some test exceptions which still should be escaped with t.Skip and envCode != "spo" condition:

if envCode != "spo" {
t.Skip("is not supported with old SharePoint versions")
}

Environment variables

  • SPAUTH_ENVCODE=code environment variable switches target environments. spo is a default one.

  • SPAPI_HEAVY_TESTS=true turns on "heavy" methods, e.g. web creation.

Run manual tests

Modify cmd/test/main.go to include required scenarios and run:

go run ./cmd/test

Optionally, you can provide a strategy to use with a corresponding flag:

go run ./cmd/test -strategy adfs

Run CI tests

Configure environment variables:

  • SPAUTH_SITEURL

  • SPAUTH_CLIENTID

  • SPAUTH_CLIENTSECRET

  • SPAUTH_USERNAME

  • SPAUTH_PASSWORD

go test ./... -v -race -count=1
SPAUTH_ENVCODE=spo SPAPI_HEAVY_TESTS=true go test ./api/... -v -race -count=1

Test coverage

Check Codecov.

Branch

Coverage

Master

​codecov​

Dev

​codecov​

We are targeted to keep code coverage higher than 80% for API and Auth methods altogether.