From 3f223a4e76e8a1c88d13139bd3281f4ef7d38d6b Mon Sep 17 00:00:00 2001 From: Nima Akhbari Date: Tue, 3 Jul 2018 14:44:56 -0700 Subject: [PATCH] Add fastlane bot configuration to onboarding --- web/app/common/constants.ts | 10 +- web/app/onboard/onboard.component.html | 48 ++++++- web/app/onboard/onboard.component.scss | 44 +++++++ web/app/onboard/onboard.component.spec.ts | 154 ++++++++++++++++++---- web/app/onboard/onboard.component.ts | 20 +++ web/app/onboard/onboard.module.ts | 7 +- web/assets/github_token_scopes.png | Bin 0 -> 63341 bytes web/global/theme.scss | 4 + 8 files changed, 259 insertions(+), 28 deletions(-) create mode 100644 web/assets/github_token_scopes.png diff --git a/web/app/common/constants.ts b/web/app/common/constants.ts index e90a5434..f2609c03 100644 --- a/web/app/common/constants.ts +++ b/web/app/common/constants.ts @@ -11,8 +11,8 @@ export enum LocalStorageKeys { AUTH_TOKEN = 'auth_token' } -export type FastlaneStatus = - 'failure'|'success'|'ci_problem'|'pending'|'missing_fastfile'|'installing_xcode'; +export type FastlaneStatus = 'failure'|'success'|'ci_problem'|'pending'| + 'missing_fastfile'|'installing_xcode'; export function fastlaneStatusToEnum(status: FastlaneStatus): BuildStatus { switch (status) { @@ -32,3 +32,9 @@ export function fastlaneStatusToEnum(status: FastlaneStatus): BuildStatus { throw new Error(`Unknown status type ${status}`); } } + +/** + * This is what is defined by GitHub to be their token length, but it can be + * modified. + */ +export const GITHUB_API_TOKEN_LENGTH = 40; diff --git a/web/app/onboard/onboard.component.html b/web/app/onboard/onboard.component.html index 98eaae88..43225deb 100644 --- a/web/app/onboard/onboard.component.html +++ b/web/app/onboard/onboard.component.html @@ -28,7 +28,53 @@
NOT WORKING - CURRENTLY IN DEVELOPMENT
- CI bot account set up +

fastlane.ci needs you to set up a CI bot account to update the build status, etc.

+
+
+ a + Create an account for your fastlane.ci bot on Github +
+
+
+
+ b + Create a personal access token for use with your bot on Github
+
+
Enable the following permissions + on Github:
+
+
+
+
+
+ c + Enter information for your fastlane.ci bot +
+
+
+ + +
+ + check_circle +
+
+ +
+ + {{botEmail}} +
+
+ + +
+
+
+
+ + +
+
Repository setup diff --git a/web/app/onboard/onboard.component.scss b/web/app/onboard/onboard.component.scss index 91622fa5..28cab103 100644 --- a/web/app/onboard/onboard.component.scss +++ b/web/app/onboard/onboard.component.scss @@ -24,8 +24,38 @@ } .mat-stepper-vertical { + .fci-substep { + font-size: 14px; + color: #4a4a4a; + .fci-substep-label { + margin-bottom: 24px; + .fci-substep-letter { + color: #9b9b9b; + border: 1px solid #9b9b9b; + border-radius: 50%; + font-size: 12px; + margin-right: 16px; + padding: 4px 8px; + } + } + .fci-substep-content { + padding-left: 40px; + } + } .fci-input-container { padding-bottom: 24px; + .fci-username { + font-size: 16px; + } + .fci-input-status { + display: inline-block; + padding-left: 8px; + .mat-spinner, + .mat-icon { + vertical-align: middle; + display: inline-block; + } + } } p { margin-top: 8px; @@ -33,4 +63,18 @@ font-size: 14px; color: #4a4a4a; } + button:first-child { + margin-right: 8px; + } +} + +.fci-github-token-scopes-image { + background: url(/assets/github_token_scopes.png); + background-repeat: no-repeat; + background-size: contain; + height: 214px; + width: 595px; + border: 1px solid rgba(0, 0, 0, 0.08); + margin-top: 16px; + margin-bottom: 32px; } diff --git a/web/app/onboard/onboard.component.spec.ts b/web/app/onboard/onboard.component.spec.ts index 5a46a980..21883aaf 100644 --- a/web/app/onboard/onboard.component.spec.ts +++ b/web/app/onboard/onboard.component.spec.ts @@ -1,31 +1,45 @@ import {DOCUMENT} from '@angular/common'; import {ComponentFixture, TestBed} from '@angular/core/testing'; import {ReactiveFormsModule} from '@angular/forms'; -import {MatButtonModule, MatStepperModule} from '@angular/material'; +import {MatButtonModule, MatIconModule, MatProgressSpinnerModule, MatStepperModule} from '@angular/material'; import {By} from '@angular/platform-browser'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; +import {Subject} from 'rxjs/Subject'; + +import {UserDetails} from '../common/types'; +import {DataService} from '../services/data.service'; import {OnboardComponent} from './onboard.component'; -const FORM_CONTROL_IDS: string[] = ['encryptionKey']; +const FORM_CONTROL_IDS: string[] = ['encryptionKey', 'botToken', 'botPassword']; +const FORTY_CHAR_STRING: string = new Array(40 + 1).join('a'); +const THIRY_NINE_CHAR_STRING: string = new Array(39 + 1).join('a'); describe('OnboardComponent', () => { let fixture: ComponentFixture; - let document: jasmine.SpyObj; let component: OnboardComponent; + let dataService: jasmine.SpyObj>; + let userDetailsSubject: Subject; beforeEach(() => { - document = {location: {origin: 'fake-host', href: 'fake-href'}}; + userDetailsSubject = new Subject(); + dataService = { + getUserDetails: + jasmine.createSpy().and.returnValue(userDetailsSubject.asObservable()) + }; TestBed .configureTestingModule({ imports: [ MatStepperModule, BrowserAnimationsModule, MatButtonModule, - ReactiveFormsModule + ReactiveFormsModule, MatProgressSpinnerModule, MatIconModule ], declarations: [ OnboardComponent, ], + providers: [ + {provide: DataService, useValue: dataService}, + ] }) .compileComponents(); @@ -34,31 +48,127 @@ describe('OnboardComponent', () => { fixture.detectChanges(); }); - for (const control_id of FORM_CONTROL_IDS) { - it(`should have the ${control_id} control properly attached`, () => { - const controlEl: HTMLInputElement = - fixture.debugElement - .query(By.css(`input[formcontrolname="${control_id}"]`)) - .nativeElement; + describe('Unit tests', () => { + it('should not get user details when the bot token is 39 chars', () => { + component.form.patchValue({botToken: THIRY_NINE_CHAR_STRING}); + + expect(dataService.getUserDetails).not.toHaveBeenCalled(); + }); + + it('should get user details when the bot token is 40 chars', () => { + component.form.patchValue({botToken: FORTY_CHAR_STRING}); + + expect(dataService.getUserDetails) + .toHaveBeenCalledWith(FORTY_CHAR_STRING); + }); + + it('should clear email if the token is changed', () => { + component.botEmail = 'fake@email.com'; + component.form.patchValue({botToken: 'new value'}); + + expect(component.botEmail).toBeUndefined(); + }); + + it('should set email from user details request', () => { + component.form.patchValue({botToken: FORTY_CHAR_STRING}); + userDetailsSubject.next({github: {email: 'best@gmail.com'}}); + + expect(component.botEmail).toBe('best@gmail.com'); + }); + + it('should set isFetchingBotEmail to false after getting user details', + () => { + component.form.patchValue({botToken: FORTY_CHAR_STRING}); + expect(component.isFetchingBotEmail).toBe(true); + + userDetailsSubject.next({github: {email: 'best@gmail.com'}}); + + expect(component.isFetchingBotEmail).toBe(false); + }); + }); - controlEl.value = '10'; - controlEl.dispatchEvent(new Event('input')); + describe('Shallow tests', () => { + let tokenInputEl: HTMLInputElement; + + beforeEach(() => { + component.botEmail = 'fake@email.com'; fixture.detectChanges(); - expect(component.form.get(control_id).value).toBe('10'); + tokenInputEl = fixture.debugElement + .query(By.css('input[formcontrolname="botToken"]')) + .nativeElement; + }); + + for (const control_id of FORM_CONTROL_IDS) { + it(`should have the ${control_id} control properly attached`, () => { + const controlEl: HTMLInputElement = + fixture.debugElement + .query(By.css(`input[formcontrolname="${control_id}"]`)) + .nativeElement; + + controlEl.value = '10'; + controlEl.dispatchEvent(new Event('input')); + fixture.detectChanges(); - component.form.patchValue({[control_id]: '12'}); + expect(component.form.get(control_id).value).toBe('10'); + + component.form.patchValue({[control_id]: '12'}); + fixture.detectChanges(); + + expect(controlEl.value).toBe('12'); + }); + } + + it('should show success check mark if bot email exists', () => { + expect(component.botEmail).toBeDefined(); + expect(fixture.debugElement + .queryAll(By.css('.fci-input-status .fci-success-icon')) + .length) + .toBe(1); + }); + + it('should hide bot email and password if token changes', () => { + expect(fixture.debugElement + .queryAll(By.css('input[formcontrolname="botPassword"]')) + .length) + .toBe(1); + expect(fixture.debugElement.query(By.css('.fci-username')) + .nativeElement.textContent) + .toBe('fake@email.com'); + + tokenInputEl.value = FORTY_CHAR_STRING; + tokenInputEl.dispatchEvent(new Event('input')); fixture.detectChanges(); - expect(controlEl.value).toBe('12'); + expect(fixture.debugElement + .queryAll(By.css('input[formcontrolname="botPassword"]')) + .length) + .toBe(0); + expect(fixture.debugElement.queryAll(By.css('.fci-username')).length) + .toBe(0); }); - } - it('should redirect to old onboarding when button is clicked', () => { - spyOn(component, 'goToOldOnboarding'); - fixture.debugElement.query(By.css('.fci-onboard-welcome button')) - .nativeElement.click(); + it('should show spinner when looking for bot email', () => { + expect(fixture.debugElement + .queryAll(By.css('.fci-input-status .mat-spinner')) + .length) + .toBe(0); + tokenInputEl.value = FORTY_CHAR_STRING; + tokenInputEl.dispatchEvent(new Event('input')); + fixture.detectChanges(); - expect(component.goToOldOnboarding).toHaveBeenCalled(); + expect(fixture.debugElement + .queryAll(By.css('.fci-input-status .mat-spinner')) + .length) + .toBe(1); + }); + + it('should redirect to old onboarding when button is clicked', () => { + spyOn(component, 'goToOldOnboarding'); + fixture.debugElement.query(By.css('.fci-onboard-welcome button')) + .nativeElement.click(); + + expect(component.goToOldOnboarding).toHaveBeenCalled(); + }); }); }); diff --git a/web/app/onboard/onboard.component.ts b/web/app/onboard/onboard.component.ts index 99a967a9..38bb9790 100644 --- a/web/app/onboard/onboard.component.ts +++ b/web/app/onboard/onboard.component.ts @@ -2,10 +2,15 @@ import {DOCUMENT} from '@angular/common'; import {Component, Inject} from '@angular/core'; import {FormBuilder, FormGroup, Validators} from '@angular/forms'; +import {GITHUB_API_TOKEN_LENGTH} from '../common/constants'; +import {DataService} from '../services/data.service'; + function buildProjectForm(fb: FormBuilder): FormGroup { return fb.group({ 'encryptionKey': ['', Validators.required], + 'botToken': ['', Validators.required], + 'botPassword': ['', Validators.required], }); } @@ -16,12 +21,27 @@ function buildProjectForm(fb: FormBuilder): FormGroup { }) export class OnboardComponent { readonly form: FormGroup; + botEmail: string; + isFetchingBotEmail = false; constructor( @Inject(DOCUMENT) private readonly document: any, + private readonly dataService: DataService, fb: FormBuilder, ) { this.form = buildProjectForm(fb); + + this.form.get('botToken').valueChanges.subscribe((token) => { + delete this.botEmail; + if (token.length === GITHUB_API_TOKEN_LENGTH) { + this.isFetchingBotEmail = true; + + this.dataService.getUserDetails(token).subscribe((details) => { + this.botEmail = details.github.email; + this.isFetchingBotEmail = false; + }); + } + }); } goToOldOnboarding() { diff --git a/web/app/onboard/onboard.module.ts b/web/app/onboard/onboard.module.ts index 6c2e86c8..143a868e 100644 --- a/web/app/onboard/onboard.module.ts +++ b/web/app/onboard/onboard.module.ts @@ -1,6 +1,7 @@ +import {CommonModule} from '@angular/common'; import {NgModule} from '@angular/core'; import {ReactiveFormsModule} from '@angular/forms'; -import {MatButtonModule, MatStepperModule} from '@angular/material'; +import {MatButtonModule, MatIconModule, MatProgressSpinnerModule, MatStepperModule} from '@angular/material'; import {OnboardComponent} from './onboard.component'; @@ -14,10 +15,10 @@ import {OnboardComponent} from './onboard.component'; ], imports: [ /** Angular Library Imports */ - ReactiveFormsModule, + ReactiveFormsModule, CommonModule, /** Internal Imports */ /** Angular Material Imports */ - MatButtonModule, MatStepperModule, + MatButtonModule, MatStepperModule, MatProgressSpinnerModule, MatIconModule /** Third-Party Module Imports */ ], providers: [], diff --git a/web/assets/github_token_scopes.png b/web/assets/github_token_scopes.png new file mode 100644 index 0000000000000000000000000000000000000000..b89af870d3518c48b37035eb6fa466ef06aa0931 GIT binary patch literal 63341 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