diff --git a/libs/ng-mockito/integration/src/lib/integration-test.spec.ts b/libs/ng-mockito/integration/src/lib/integration-test.spec.ts index ac0e069..f241f21 100644 --- a/libs/ng-mockito/integration/src/lib/integration-test.spec.ts +++ b/libs/ng-mockito/integration/src/lib/integration-test.spec.ts @@ -8,7 +8,7 @@ import { mockPipe, mockProvider, } from 'ng-mockito'; -import { anyString, mock, when } from 'ts-mockito'; +import { anyString, mock, when } from '@typestrong/ts-mockito'; import { INTEGRATION_TEST_STRING_TOKEN, INTEGRATION_TEST_INTERFACE_TOKEN, diff --git a/libs/ng-mockito/ng-mockito/README.md b/libs/ng-mockito/ng-mockito/README.md index ae912a8..04b885e 100644 --- a/libs/ng-mockito/ng-mockito/README.md +++ b/libs/ng-mockito/ng-mockito/README.md @@ -6,7 +6,14 @@ # ng-mockito -**Type-safe mocking** for Angular, based on [ts-mockito](https://github.com/NagRock/ts-mockito). If you use ts-mockito for your Angular project, you'll love ng-mockito! If not, you'll love it anyway 🤓️. It also integrates nicely with [@testing-library/angular](https://github.com/testing-library/angular-testing-library). +> ⚠️ switched to [@typestrong/ts-mockito](https://www.npmjs.com/package/@typestrong/ts-mockito) because ts-mockito seems to not be maintained anymore (see https://github.com/NagRock/ts-mockito/issues/212) +> If you want to use this version of ng-mockito, you need to replace ts-mockito with @typestrong/ts-mockito: +> +> 1. `npm uninstall ts-mockito`. +> 2. `npm install @typestrong/ts-mockito`. +> 3. replace `'ts-mockito'` with `'@typestrong/ts-mockito'` in every file (no other changes should be necessary) + +**Type-safe mocking** for Angular, based on [ts-mockito](https://github.com/TypeStrong/ts-mockito). If you use ts-mockito for your Angular project, you'll love ng-mockito! If not, you'll love it anyway 🤓️. It also integrates nicely with [@testing-library/angular](https://github.com/testing-library/angular-testing-library). As a layer on top of ts-mockito, it's 100% compatible to it. You're still working with the usual functions (`when`, `verify`, ...). It just makes your life easier when preparing mocks for Angular-specific types. @@ -110,7 +117,7 @@ TestBed.configureTestingModule({ For more usage examples in combination with [@testing-library/angular](https://github.com/testing-library/angular-testing-library), please have a look at the [spec file in our GitHub repo](https://github.com/qupaya/ng-mockito/blob/main/libs/ng-mockito/integration/src/lib/integration-test.spec.ts). -For more information about how to mock, stub and verify, see the [ts-mockito documentation](https://github.com/NagRock/ts-mockito). +For more information about how to mock, stub and verify, see the [ts-mockito documentation](https://github.com/TypeStrong/ts-mockito). --- diff --git a/libs/ng-mockito/ng-mockito/package.json b/libs/ng-mockito/ng-mockito/package.json index c4818df..60e96fa 100644 --- a/libs/ng-mockito/ng-mockito/package.json +++ b/libs/ng-mockito/ng-mockito/package.json @@ -27,7 +27,7 @@ "@angular/core": ">=12", "@angular/router": ">=12", "@angular/platform-browser-dynamic": ">=12", - "ts-mockito": "^2.6.1", + "@typestrong/ts-mockito": "^2.6.0", "typescript": ">=3.9.0" }, "dependencies": { diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-component.spec.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-component.spec.ts index 915130d..3601779 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-component.spec.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-component.spec.ts @@ -1,7 +1,7 @@ /* eslint-disable @angular-eslint/component-selector */ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { render } from '@testing-library/angular'; -import * as tsMockito from 'ts-mockito'; +import * as tsMockito from '@typestrong/ts-mockito'; import { mockComponent as _mockComponent } from './mock-component'; import { mockNg } from './mock-ng'; diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-component.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-component.ts index f314fa1..292b51c 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-component.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-component.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { Component, EventEmitter } from '@angular/core'; -import { instance, when } from 'ts-mockito'; +import { instance, when } from '@typestrong/ts-mockito'; import { getDirectiveProperties, getDecoratorMetadata, @@ -45,5 +45,5 @@ export function mockComponent( return instance(mock); } - return (Component(metadata)(MockComponent) as unknown) as Type; + return Component(metadata)(MockComponent) as unknown as Type; } diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-directive.spec.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-directive.spec.ts index 32d0d96..e012b07 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-directive.spec.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-directive.spec.ts @@ -9,7 +9,7 @@ import { Directive, } from '@angular/core'; import { render } from '@testing-library/angular'; -import * as tsMockito from 'ts-mockito'; +import * as tsMockito from '@typestrong/ts-mockito'; import { mockDirective as _mockDirective } from './mock-directive'; import { mockNg } from './mock-ng'; diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-directive.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-directive.ts index e47612c..04dfa54 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-directive.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-directive.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { Directive, EventEmitter } from '@angular/core'; -import { instance, when } from 'ts-mockito'; +import { instance, when } from '@typestrong/ts-mockito'; import { getDecoratorMetadata, getDirectiveProperties, @@ -44,5 +44,5 @@ export function mockDirective( return instance(mock); } - return (Directive(metadata)(MockDirective) as unknown) as Type; + return Directive(metadata)(MockDirective) as unknown as Type; } diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.spec.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.spec.ts index ac806f3..b19df39 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.spec.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.spec.ts @@ -1,6 +1,6 @@ import { Component, Pipe, PipeTransform } from '@angular/core'; import { render, screen } from '@testing-library/angular'; -import * as tsMockito from 'ts-mockito'; +import * as tsMockito from '@typestrong/ts-mockito'; import { mockPipe as _mockPipe } from './mock-pipe'; import { mockNg } from './mock-ng'; @@ -56,7 +56,7 @@ describe.each` describe('when using a pipe with arguments', () => { @Component({ template: `{{ - 'test' | test: 'arg' + 'test' | test : 'arg' }}`, }) class TestComponent {} diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.ts index 8985142..e78d672 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-pipe.ts @@ -1,5 +1,5 @@ import { Pipe } from '@angular/core'; -import { instance } from 'ts-mockito'; +import { instance } from '@typestrong/ts-mockito'; import { getDecoratorMetadata } from './ng-decorator-helpers'; import { createTypeAndMock, noOp } from './ts-mockito-helpers'; import { SetupMockFn, TypeOrMock, Type } from './types'; @@ -25,5 +25,5 @@ export function mockPipe( Pipe(metadata)(MockPipe); - return (MockPipe as unknown) as Type; + return MockPipe as unknown as Type; } diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-provider.spec.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-provider.spec.ts index e9fba7b..b3508df 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-provider.spec.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-provider.spec.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { TestBed } from '@angular/core/testing'; -import * as tsMockito from 'ts-mockito'; +import * as tsMockito from '@typestrong/ts-mockito'; import { mockNg } from './mock-ng'; import { mockProvider as _mockProvider } from './mock-provider'; import { ActivatedRoute } from '@angular/router'; diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-provider.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-provider.ts index 5c94602..21f9e02 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-provider.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-provider.ts @@ -1,5 +1,5 @@ import { FactoryProvider } from '@angular/core'; -import { instance } from 'ts-mockito'; +import { instance } from '@typestrong/ts-mockito'; import { createTypeAndMock, noOp } from './ts-mockito-helpers'; import { SetupMockFn, TypeOrMock } from './types'; diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-token.spec.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-token.spec.ts index aecdfe1..1792e07 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-token.spec.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-token.spec.ts @@ -1,6 +1,6 @@ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core'; import { TestBed } from '@angular/core/testing'; -import { when, mock } from 'ts-mockito'; +import { when, mock } from '@typestrong/ts-mockito'; import { mockNg } from './mock-ng'; import { mockToken as _mockToken } from './mock-token'; diff --git a/libs/ng-mockito/ng-mockito/src/lib/mock-token.ts b/libs/ng-mockito/ng-mockito/src/lib/mock-token.ts index 5e79124..75d6213 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/mock-token.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/mock-token.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { FactoryProvider, InjectionToken, Type } from '@angular/core'; -import { instance, mock } from 'ts-mockito'; +import { instance, mock } from '@typestrong/ts-mockito'; import { createDefaultValue, getConstructorParameterTypeOfInjectionToken, diff --git a/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.spec.ts b/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.spec.ts index 5f7d537..80ecc03 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.spec.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.spec.ts @@ -2,7 +2,7 @@ import { DOCUMENT } from '@angular/common'; import { HttpClient } from '@angular/common/http'; import { InjectionToken, Renderer2 } from '@angular/core'; -import { instance, mock, when } from 'ts-mockito'; +import { instance, mock, when } from '@typestrong/ts-mockito'; import { createTypeAndMock, isStubbed, isMock } from './ts-mockito-helpers'; describe('ts-mockito helpers', () => { diff --git a/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.ts b/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.ts index e9ae3b7..5c13b2c 100644 --- a/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.ts +++ b/libs/ng-mockito/ng-mockito/src/lib/ts-mockito-helpers.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { InjectionToken } from '@angular/core'; -import { mock } from 'ts-mockito'; +import { mock } from '@typestrong/ts-mockito'; import { Mocker } from 'ts-mockito/lib/Mock'; import { TypeAndMock, TypeOrMock, Type } from './types'; diff --git a/package-lock.json b/package-lock.json index 478001f..7504f20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,6 +47,7 @@ "@types/node": "18.13.0", "@typescript-eslint/eslint-plugin": "5.51.0", "@typescript-eslint/parser": "5.51.0", + "@typestrong/ts-mockito": "^2.6.5", "codelyzer": "^6.0.0", "cypress": "^9.6.1", "dotenv": "10.0.0", @@ -68,7 +69,6 @@ "prettier": "2.8.3", "semantic-release": "^20.1.0", "ts-jest": "28.0.8", - "ts-mockito": "^2.6.1", "ts-node": "10.9.1", "tslint": "6.1.3", "typescript": "4.8.4" @@ -8394,6 +8394,16 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@typestrong/ts-mockito": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@typestrong/ts-mockito/-/ts-mockito-2.6.5.tgz", + "integrity": "sha512-gZfV+Z4+HdsCJeMYt/LLVlSoQT+7OslvTI+jMa3tuES9akxERM+/JD+uiMsd+di57R9unVSLWY2Tb8QB0OZuGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.5", + "safe-json-stringify": "^1.2.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -26458,6 +26468,12 @@ } ] }, + "node_modules/safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "dev": true + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -28651,15 +28667,6 @@ "node": ">=8" } }, - "node_modules/ts-mockito": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ts-mockito/-/ts-mockito-2.6.1.tgz", - "integrity": "sha512-qU9m/oEBQrKq5hwfbJ7MgmVN5Gu6lFnIGWvpxSjrqq6YYEVv+RwVFWySbZMBgazsWqv6ctAyVBpo9TmAxnOEKw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.5" - } - }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -35721,6 +35728,16 @@ } } }, + "@typestrong/ts-mockito": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@typestrong/ts-mockito/-/ts-mockito-2.6.5.tgz", + "integrity": "sha512-gZfV+Z4+HdsCJeMYt/LLVlSoQT+7OslvTI+jMa3tuES9akxERM+/JD+uiMsd+di57R9unVSLWY2Tb8QB0OZuGA==", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "safe-json-stringify": "^1.2.0" + } + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -48770,6 +48787,12 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "dev": true + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -50340,15 +50363,6 @@ } } }, - "ts-mockito": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ts-mockito/-/ts-mockito-2.6.1.tgz", - "integrity": "sha512-qU9m/oEBQrKq5hwfbJ7MgmVN5Gu6lFnIGWvpxSjrqq6YYEVv+RwVFWySbZMBgazsWqv6ctAyVBpo9TmAxnOEKw==", - "dev": true, - "requires": { - "lodash": "^4.17.5" - } - }, "ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", diff --git a/package.json b/package.json index efd2ec1..a60bc30 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "@types/node": "18.13.0", "@typescript-eslint/eslint-plugin": "5.51.0", "@typescript-eslint/parser": "5.51.0", + "@typestrong/ts-mockito": "^2.6.5", "codelyzer": "^6.0.0", "cypress": "^9.6.1", "dotenv": "10.0.0", @@ -95,7 +96,6 @@ "prettier": "2.8.3", "semantic-release": "^20.1.0", "ts-jest": "28.0.8", - "ts-mockito": "^2.6.1", "ts-node": "10.9.1", "tslint": "6.1.3", "typescript": "4.8.4"