/
create-integration.component.spec.ts
78 lines (67 loc) · 3.02 KB
/
create-integration.component.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
* Copyright (C) 2015 The Gravitee team (http://gravitee.io)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
import { HttpTestingController } from '@angular/common/http/testing';
import { InteractivityChecker } from '@angular/cdk/a11y';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { CreateIntegrationComponent } from './create-integration.component';
import { CreateIntegrationHarness } from './create-integration.harness';
import { IntegrationsModule } from '../integrations.module';
import { CONSTANTS_TESTING, GioTestingModule } from '../../../shared/testing';
describe('CreateIntegrationComponent', () => {
let fixture: ComponentFixture<CreateIntegrationComponent>;
let componentHarness: CreateIntegrationHarness;
let httpTestingController: HttpTestingController;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [CreateIntegrationComponent],
imports: [GioTestingModule, IntegrationsModule, BrowserAnimationsModule, NoopAnimationsModule]
})
.overrideProvider(InteractivityChecker, {
useValue: {
isFocusable: () => true, // This traps focus checks and so avoid warnings when dealing with
isTabbable: () => true // This traps focus checks and so avoid warnings when dealing with
}
})
.compileComponents();
});
beforeEach(async () => {
fixture = TestBed.createComponent(CreateIntegrationComponent);
httpTestingController = TestBed.inject(HttpTestingController);
componentHarness = await TestbedHarnessEnvironment.harnessForFixture(fixture, CreateIntegrationHarness);
fixture.detectChanges();
});
afterEach(() => {
httpTestingController.verify();
});
describe('form', () => {
it('should not submit empty form', async () => {
await componentHarness.clickOnSubmit();
httpTestingController.expectNone(`${CONSTANTS_TESTING.env.v2BaseURL}/integrations`);
});
it('should create integration with valid form', async () => {
await componentHarness.setName('TEST123');
await componentHarness.clickOnSubmit();
expectIntegrationPostRequest();
})
});
function expectIntegrationPostRequest(): void {
const req = httpTestingController.expectOne(`${CONSTANTS_TESTING.env.v2BaseURL}/integrations`);
req.flush([]);
expect(req.request.method).toEqual('POST');
}
});