diff --git a/lib/js-api-old/.mocharc.json b/lib/js-api-old/.mocharc.json deleted file mode 100644 index 77c6823278..0000000000 --- a/lib/js-api-old/.mocharc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extensions": ["ts"], - "spec": ["lib/js-api/test/**/*.spec.ts"], - "node-option": [ - "loader=ts-node/register" - ] -} diff --git a/lib/js-api/.mocharc.json b/lib/js-api/.mocharc.json new file mode 100644 index 0000000000..785599ddb9 --- /dev/null +++ b/lib/js-api/.mocharc.json @@ -0,0 +1,4 @@ +{ + "extensions": ["ts"], + "spec": ["dist/tmp/libs/js-api/test/**/*.spec.js"] +} diff --git a/lib/js-api/project.json b/lib/js-api/project.json index fc4a83c594..51931d3446 100644 --- a/lib/js-api/project.json +++ b/lib/js-api/project.json @@ -16,6 +16,15 @@ "externalBuildTargets": [ "build" ] + }, + "configurations": { + "test": { + "outputPath": "dist/tmp/libs/js-api", + "tsConfig": "lib/js-api/tsconfig.spec.json", + "assets": [ + "lib/js-api/test/mockObjects/assets/**/*" + ] + } } }, "publish": { @@ -33,11 +42,15 @@ } }, "test": { - "executor": "@nrwl/jest:jest", + "executor": "nx:run-commands", "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], "options": { - "jestConfig": "lib/js-api/jest.config.ts", - "passWithNoTests": true + "commands": [ + "nx run js-api:build:test", + "mocha --full-trace --config lib/js-api/.mocharc.json", + "rm -fr dist/tmp/libs/js-api" + ], + "parallel": false }, "configurations": { "ci": { diff --git a/lib/js-api/test/oauth2Auth.spec.ts b/lib/js-api/test/oauth2Auth.spec.ts index b0c348f197..315ec84d20 100644 --- a/lib/js-api/test/oauth2Auth.spec.ts +++ b/lib/js-api/test/oauth2Auth.spec.ts @@ -18,8 +18,6 @@ import assert from 'assert'; import { AlfrescoApi, ContentApi, Oauth2Auth } from '../src'; import { EcmAuthMock, OAuthMock } from './mockObjects'; -import { TextEncoder, TextDecoder } from 'util'; -Object.assign(global, { TextDecoder, TextEncoder }); import jsdom from 'jsdom'; const { JSDOM } = jsdom; @@ -171,6 +169,7 @@ describe('Oauth2 test', () => { }); it('should refresh token when the login not use the implicitFlow ', function (done) { + this.timeout(3000); oauth2Mock.get200Response(); const oauth2Auth = new Oauth2Auth( @@ -203,9 +202,10 @@ describe('Oauth2 test', () => { }, 600); oauth2Auth.login('admin', 'admin'); - }, 3000); + }); it('should not hang the app also if teh logout is missing', function (done) { + this.timeout(3000); oauth2Mock.get200Response(); const oauth2Auth = new Oauth2Auth( @@ -237,7 +237,7 @@ describe('Oauth2 test', () => { }, 600); oauth2Auth.login('admin', 'admin'); - }, 3000); + }); it('should emit a token_issued event if login is ok ', (done) => { oauth2Mock.get200Response(); @@ -426,6 +426,7 @@ describe('Oauth2 test', () => { // TODO: very flaky test, fails on different machines if running slow, might relate to `this.timeout` // eslint-disable-next-line ban/ban xit('should extend content session after oauth token refresh', function (done) { + this.timeout(3000); oauth2Mock.get200Response(); authResponseMock.get200ValidTicket(); @@ -463,8 +464,9 @@ describe('Oauth2 test', () => { }); alfrescoApi.login('admin', 'admin'); + this.timeout(3000); alfrescoApi.refreshToken(); - }, 3000); + }); it('isLoggedIn should return true if the api is logged in', (done) => { oauth2Mock.get200Response(); diff --git a/lib/js-api/test/oauth2AuthImplicitFlow.spec.ts b/lib/js-api/test/oauth2AuthImplicitFlow.spec.ts index e5d9abb3b5..59aac3c2c1 100644 --- a/lib/js-api/test/oauth2AuthImplicitFlow.spec.ts +++ b/lib/js-api/test/oauth2AuthImplicitFlow.spec.ts @@ -53,7 +53,13 @@ describe('Oauth2 Implicit flow test', () => { }); it('should redirect to login if access token is not valid', (done) => { - window = globalAny.window = { location: {} }; + window = globalAny.window = { + location: { + assign: (v: any) => { + window.location.href = v; + } + } + }; globalAny.document = { getElementById: () => '' }; @@ -81,7 +87,13 @@ describe('Oauth2 Implicit flow test', () => { }); it('should not loop over redirection when redirectUri contains hash and token is not valid ', (done) => { - window = globalAny.window = { location: {} }; + window = globalAny.window = { + location: { + assign: (v: any) => { + window.location.href = v; + } + } + }; globalAny.document = { getElementById: () => '' }; @@ -112,7 +124,13 @@ describe('Oauth2 Implicit flow test', () => { }); it('should not redirect to login if access token is valid', (done) => { - window = globalAny.window = { location: {} }; + window = globalAny.window = { + location: { + assign: (v: any) => { + window.location.href = v; + } + } + }; globalAny.document = { getElementById: () => '' }; @@ -144,11 +162,17 @@ describe('Oauth2 Implicit flow test', () => { }); it('should set the loginFragment to redirect after the login if it is present', (done) => { - window = globalAny.window = {}; + window = globalAny.window = { + location: { + assign: (v: any) => { + window.location.href = v; + } + } + }; globalAny.document = { getElementById: () => '' }; - window.location = { hash: 'asfasfasfa' }; + window.location.hash = 'asfasfasfa'; Object.defineProperty(window.location, 'hash', { writable: true, diff --git a/lib/js-api/test/tsconfig.json b/lib/js-api/test/tsconfig.json index 79da01d3a8..3ad0351fdc 100644 --- a/lib/js-api/test/tsconfig.json +++ b/lib/js-api/test/tsconfig.json @@ -8,7 +8,6 @@ "isolatedModules": true, "allowSyntheticDefaultImports": true, "skipLibCheck": true, - "skipDefaultLibCheck": true, - "types": ["jest"] + "skipDefaultLibCheck": true } } diff --git a/lib/js-api/tsconfig.spec.json b/lib/js-api/tsconfig.spec.json index f15cc39fea..16a07e04de 100644 --- a/lib/js-api/tsconfig.spec.json +++ b/lib/js-api/tsconfig.spec.json @@ -1,9 +1,16 @@ { - "extends": "./tsconfig.json", + "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node", "@types/jest"] + "module": "CommonJS", + "moduleResolution": "node", + "target": "ES2015", + "esModuleInterop": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "types": ["mocha"] }, - "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] + "exclude": [], + "include": ["**/*"] }