From 9b86de13b01b6c9f651118891e7998a251fe3d6d Mon Sep 17 00:00:00 2001 From: renanarosario Date: Fri, 25 Oct 2024 16:04:38 -0300 Subject: [PATCH] feat(sonar): testa o CI com SONAR Teste do ci com o Sonar. DTHFUI-200100 --- .github/workflows/ci.yml | 9 +-- .../po-accordion.component.spec.ts | 40 +++++++++++++ .../po-accordion/po-accordion.sonar.js | 57 ------------------- scripts/sonar.js | 18 ++++-- 4 files changed, 59 insertions(+), 65 deletions(-) delete mode 100644 projects/ui/src/lib/components/po-accordion/po-accordion.sonar.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3eb1ebcce..03a2cb131 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -78,7 +78,7 @@ jobs: sonar_analysis: name: SonarQube Analysis - if: github.event_name != 'pull_request' || github.event.action != 'closed' + if: github.event_name == 'pull_request' && github.event.action != 'closed' runs-on: ubuntu-20.04 needs: [test-ui, test-templates, test-code-editor, test-storage, test-sync] steps: @@ -280,6 +280,7 @@ jobs: SONAR_PROJECT_KEY: ${{secrets.SONAR_PROJECT_KEY}} BRANCH_NAME: ${{ github.head_ref }} run: | - curl -u "${SONAR_TOKEN}:" -X POST "${SONAR_HOST_URL}/api/project_branches/delete" \ - -d "project=${SONAR_PROJECT_KEY}" \ - -d "branch=${BRANCH_NAME}" + curl -u "${{ secrets.SONAR_TOKEN }}:" -X POST "${{ secrets.SONAR_HOST_URL }}/api/project_branches/delete" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "project=${{secrets.SONAR_PROJECT_KEY}}" \ + -d "branch=${{ github.head_ref }}" diff --git a/projects/ui/src/lib/components/po-accordion/po-accordion.component.spec.ts b/projects/ui/src/lib/components/po-accordion/po-accordion.component.spec.ts index b594c6cf7..5708ffd0c 100644 --- a/projects/ui/src/lib/components/po-accordion/po-accordion.component.spec.ts +++ b/projects/ui/src/lib/components/po-accordion/po-accordion.component.spec.ts @@ -267,5 +267,45 @@ describe('PoAccordionComponent:', () => { expect(expandedActiveAccordionItem.collapse).toHaveBeenCalled(); expect(component['expandedActiveAccordionItem']).toEqual(currentAccordionItem); }); + + it('toggle: should set `expandedActiveAccordionItem` to currentAccordionItem', () => { + const currentAccordionItem = { + expanded: true, + collapse: () => {} + }; + + component['expandedActiveAccordionItem'] = undefined; + + component['toggle'](currentAccordionItem); + + expect(component['expandedActiveAccordionItem']).toEqual(currentAccordionItem); + }); + }); + + describe('Templates:', () => { + it('should contain `po-accordion-item-active` if any item is active', () => { + const header = nativeElementMock.querySelector('.po-accordion-item-header-button'); + + header.click(); + + fixtureMock.detectChanges(); + + const activeItem = nativeElementMock.querySelector('.po-accordion-item-active'); + + expect(activeItem).toBeTruthy(); + }); + + it('shouldn`t contain `po-accordion-item-active` if no item is active', () => { + const activeItem = nativeElementMock.querySelector('.po-accordion-item-active'); + + expect(activeItem).toBeFalsy(); + }); + + it('should contain `po-accordion-manager` if `showManagerAccordion` is active', () => { + fixture.detectChanges(); + const managerAccordion = nativeElementMock.querySelector('.po-accordion-manager'); + + expect(managerAccordion).toBeTruthy(); + }); }); }); diff --git a/projects/ui/src/lib/components/po-accordion/po-accordion.sonar.js b/projects/ui/src/lib/components/po-accordion/po-accordion.sonar.js deleted file mode 100644 index 6a848efb0..000000000 --- a/projects/ui/src/lib/components/po-accordion/po-accordion.sonar.js +++ /dev/null @@ -1,57 +0,0 @@ -const { StatusCodes } = require('http-status-codes'); - -// Variável não usada para teste Sonar -const UNUSED_MESSAGE = 'This message is not used anywhere'; - -class OIDCAuthenticationController { - // Função assíncrona sem await para verificação do Sonar - async unusedAsyncFunction() { - console.warn('This is a warning'); - } - - async getAuthForOIDC(headers, token) { - this.validateHeaders(headers); - await this.validateTokenForApp(token); - - const arrAlias = headers['x-oidc-alias'].split(' '); - const prefix = arrAlias[0]; - const suffix = arrAlias.length === 2 ? arrAlias[1] : ''; - - if (!headers['x-oidc-alias'] || headers['x-oidc-alias'].length === 0) { - console.warn('Alias header is empty'); // Teste de console.warn - } - - const credentials = { - prefix, - suffix, - appId: headers['x-oidc-app-id'], - headers - }; - - // Teste de complexidade adicional - if (token === 'someSpecificToken') { - console.error('Specific token error'); // Teste de console.error - } - - return await this.validateAndReturnOidc(credentials, headers, token); - } - - validateHeaders(headers) { - // Condições adicionais para aumentar a complexidade - if (!headers['x-oidc-alias']) { - console.warn('OIDC alias missing'); - } else if (!headers['x-oidc-app-id']) { - console.warn('OIDC app-id missing'); - } - } - - async validateTokenForApp(token) { - if (!token) { - throw new Error('Token is required'); - } - const formattedToken = token.startsWith('Bearer ') ? token.slice(7) : token; - return true; // Suponha que o token seja sempre válido para este teste - } -} - -module.exports = OIDCAuthenticationController; diff --git a/scripts/sonar.js b/scripts/sonar.js index 6174e6732..79ccc53bf 100644 --- a/scripts/sonar.js +++ b/scripts/sonar.js @@ -17,9 +17,19 @@ task('sonarqube', callback => { // Novos parâmetros para Pull Request // const pullRequestKey = argv.pullrequestKey || process.env.GITHUB_EVENT_PULL_REQUEST_NUMBER; - const pullRequestBranch = argv.pullrequestBranch || process.env.GITHUB_HEAD_REF; - const pullRequestBase = argv.pullrequestBase || process.env.GITHUB_BASE_REF; + // const pullRequestBranch = argv.pullrequestBranch || process.env.GITHUB_HEAD_REF; + // const pullRequestBase = argv.pullrequestBase || process.env.GITHUB_BASE_REF; + // console.log('pullRequestBranch', pullRequestBranch); + // console.log('pullRequestBase', pullRequestBase); + + const sonarParams = process.env.SONAR_SCANNER_JSON_PARAMS ? JSON.parse(process.env.SONAR_SCANNER_JSON_PARAMS) : {}; + + const pullRequestKey = argv.pullrequestKey || sonarParams['sonar.pullrequest.key']; + const pullRequestBranch = argv.pullrequestBranch || sonarParams['sonar.pullrequest.branch']; + const pullRequestBase = argv.pullrequestBase || sonarParams['sonar.pullrequest.base']; + + console.log('pullRequestKey', pullRequestKey); console.log('pullRequestBranch', pullRequestBranch); console.log('pullRequestBase', pullRequestBase); @@ -54,8 +64,8 @@ task('sonarqube', callback => { }; // Adiciona os parâmetros de Pull Request se for uma análise de PR - if (pullRequestBranch && pullRequestBase) { - // sonarOptions['sonar.pullrequest.key'] = pullRequestKey; + if (pullRequestKey && pullRequestBranch && pullRequestBase) { + sonarOptions['sonar.pullrequest.key'] = pullRequestKey; sonarOptions['sonar.pullrequest.branch'] = pullRequestBranch; sonarOptions['sonar.pullrequest.base'] = pullRequestBase; }