diff --git a/package-lock.json b/package-lock.json index ce29fd11..39660e38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3272,7 +3272,7 @@ "dependencies": { "chalk": { "version": "2.3.1", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "dev": true, "requires": { @@ -5660,7 +5660,7 @@ }, "browserify-aes": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { @@ -5697,7 +5697,7 @@ }, "browserify-rsa": { "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { @@ -7298,7 +7298,7 @@ }, "create-hash": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { @@ -7311,7 +7311,7 @@ }, "create-hmac": { "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { @@ -7869,7 +7869,7 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -7960,7 +7960,7 @@ }, "diffie-hellman": { "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { @@ -16030,7 +16030,7 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -17184,7 +17184,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { diff --git a/projects/spectator/jest/src/lib/matchers-types.d.ts b/projects/spectator/jest/src/lib/matchers-types.d.ts index 14a1e0d5..f55d21ce 100644 --- a/projects/spectator/jest/src/lib/matchers-types.d.ts +++ b/projects/spectator/jest/src/lib/matchers-types.d.ts @@ -47,5 +47,7 @@ declare namespace jest { toHaveDescendant(selector: string | Element): boolean; toHaveDescendantWithText({ selector, text }: { selector: string; text: string }): boolean; + + toHaveSelectedOptions(expected: string | string[] | HTMLOptionElement | HTMLOptionElement[]): boolean; } } diff --git a/projects/spectator/jest/test/form-select/form-select.component.spec.ts b/projects/spectator/jest/test/form-select/form-select.component.spec.ts new file mode 100644 index 00000000..1d84dbbe --- /dev/null +++ b/projects/spectator/jest/test/form-select/form-select.component.spec.ts @@ -0,0 +1,21 @@ +import { ReactiveFormsModule } from '@angular/forms'; +import { Spectator, createComponentFactory } from '@ngneat/spectator/jest'; + +import { FormSelectComponent } from './form-select.component'; + +describe('FormSelectComponent', () => { + let spectator: Spectator; + + const createComponent = createComponentFactory({ + component: FormSelectComponent, + imports: [ReactiveFormsModule] + }); + + beforeEach(() => (spectator = createComponent())); + + it('should set the correct option on standard select', () => { + const select = spectator.query('#test-single-select') as HTMLSelectElement; + spectator.selectOption(select, '1'); + expect(select).toHaveSelectedOptions('1'); + }); +}); diff --git a/projects/spectator/jest/test/form-select/form-select.component.ts b/projects/spectator/jest/test/form-select/form-select.component.ts new file mode 100644 index 00000000..5178826c --- /dev/null +++ b/projects/spectator/jest/test/form-select/form-select.component.ts @@ -0,0 +1,21 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; + +@Component({ + selector: 'app-form-select', + template: ` + + `, + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FormSelectComponent { + /** + * Empty method to spy on + */ + public handleChange(): void { + return; + } +}