From bdf880617a925142ce32adeb3f2f102ba46cb33e Mon Sep 17 00:00:00 2001 From: Sander Blue Date: Tue, 28 May 2024 15:17:16 -0500 Subject: [PATCH] chore: detecting drift via multiple error substrings --- .github/workflows/test_integration_cron.yml | 65 +++++++++++++------ ...rce_newrelic_notifications_channel_test.go | 5 +- scripts/detect-state-drift.js | 20 +++++- 3 files changed, 64 insertions(+), 26 deletions(-) diff --git a/.github/workflows/test_integration_cron.yml b/.github/workflows/test_integration_cron.yml index 95b9796108..97b52b725f 100644 --- a/.github/workflows/test_integration_cron.yml +++ b/.github/workflows/test_integration_cron.yml @@ -1,32 +1,57 @@ name: Integration Tests Cron Job on: - workflow_dispatch: # this is just to test the functionality, remove before merging!!!!!!!!!!!! + workflow_dispatch: + push: + branches: [feat/integration-test-cron-job] # schedule: # # Cron executes at 0800, 1200 1600 (8am, 12pm, 4pm) # - cron: "0 8,12,16 * * 1-5" jobs: test-integration: - # if: github.ref == 'refs/heads/main' - uses: newrelic/terraform-provider-newrelic/.github/workflows/test_integration.yml@feat/integration-test-cron-job - secrets: - NEW_RELIC_ACCOUNT_ID: ${{ secrets.NEW_RELIC_ACCOUNT_ID }} - NEW_RELIC_SUBACCOUNT_ID: ${{ secrets.NEW_RELIC_SUBACCOUNT_ID }} - NEW_RELIC_ADMIN_API_KEY: ${{ secrets.NEW_RELIC_ADMIN_API_KEY }} - NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }} - NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} - NEW_RELIC_REGION: ${{ secrets.NEW_RELIC_REGION }} - NEW_RELIC_INSIGHTS_INSERT_KEY: ${{ secrets.NEW_RELIC_INSIGHTS_INSERT_KEY }} - NR_ACC_TESTING: ${{ secrets.NR_ACC_TESTING }} - INTEGRATION_TESTING_AWS_ARN: ${{ secrets.INTEGRATION_TESTING_AWS_ARN }} - INTEGRATION_TESTING_GCP_ACCOUNT_NAME: ${{ secrets.INTEGRATION_TESTING_GCP_ACCOUNT_NAME }} - INTEGRATION_TESTING_GCP_PROJECT_ID: ${{ secrets.INTEGRATION_TESTING_GCP_PROJECT_ID }} - INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID: ${{secrets.INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID}} - INTEGRATION_TESTING_AZURE_APPLICATION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_APPLICATION_ID }} - INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID }} - INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID }} - INTEGRATION_TESTING_AZURE_TENANT_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_TENANT_ID }} + runs-on: ubuntu-latest + steps: + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: 1.21.x + + - name: Add GOBIN to PATH + run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + shell: bash + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Cache deps + uses: actions/cache@v4 + with: + path: ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: Integration Tests + if: github.event.pull_request.head.repo.full_name == github.repository + run: make test-integration cover-report + env: + NEW_RELIC_ACCOUNT_ID: ${{ secrets.NEW_RELIC_ACCOUNT_ID }} + NEW_RELIC_SUBACCOUNT_ID: ${{ secrets.NEW_RELIC_SUBACCOUNT_ID }} + NEW_RELIC_ADMIN_API_KEY: ${{ secrets.NEW_RELIC_ADMIN_API_KEY }} + NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }} + NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} + NEW_RELIC_REGION: ${{ secrets.NEW_RELIC_REGION }} + NEW_RELIC_INSIGHTS_INSERT_KEY: ${{ secrets.NEW_RELIC_INSIGHTS_INSERT_KEY }} + NR_ACC_TESTING: ${{ secrets.NR_ACC_TESTING }} + INTEGRATION_TESTING_AWS_ARN: ${{ secrets.INTEGRATION_TESTING_AWS_ARN }} + INTEGRATION_TESTING_GCP_ACCOUNT_NAME: ${{ secrets.INTEGRATION_TESTING_GCP_ACCOUNT_NAME }} + INTEGRATION_TESTING_GCP_PROJECT_ID: ${{ secrets.INTEGRATION_TESTING_GCP_PROJECT_ID }} + INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID: ${{secrets.INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID}} + INTEGRATION_TESTING_AZURE_APPLICATION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_APPLICATION_ID }} + INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID }} + INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID }} + INTEGRATION_TESTING_AZURE_TENANT_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_TENANT_ID }} detect-drift: runs-on: ubuntu-latest diff --git a/newrelic/resource_newrelic_notifications_channel_test.go b/newrelic/resource_newrelic_notifications_channel_test.go index 2b9d910c2c..7967659c65 100644 --- a/newrelic/resource_newrelic_notifications_channel_test.go +++ b/newrelic/resource_newrelic_notifications_channel_test.go @@ -89,10 +89,7 @@ func TestNewRelicNotificationChannel_WebhookPropertyError(t *testing.T) { # Test error for missing property key = url ` - destinationPropsAttr := `property { - key = "url" - value = "https://webhook.site/" - } + destinationPropsAttr := ` ` resource.ParallelTest(t, resource.TestCase{ diff --git a/scripts/detect-state-drift.js b/scripts/detect-state-drift.js index d51ec8ee33..ed50eee175 100755 --- a/scripts/detect-state-drift.js +++ b/scripts/detect-state-drift.js @@ -26,12 +26,28 @@ module.exports = async ({ // console.log(jsonData); const report = jsonData.filter(data => { - return data.Output ? data.Output.includes('error: After applying this test step, the plan was not empty') : false; + const driftDetectedSubStrings = [ + 'the plan was not empty', + 'expected an error but got none', + ]; + + if (!data.Output) { + return false; + } + + let driftDetected = false + for (let i = 0; i < driftDetectedSubStrings.length; i++) { + if (data.Output.includes(driftDetectedSubStrings[i])) { + return true; + } + } + + return driftDetected }).map(t => t.Output.trim()); console.log(report); - let msg = 'error: After applying this test step, the plan was not empty'; + let msg = ''; if (report.length > 0) { msg = `'${report.join('\n')}'`; }