mirror of https://github.com/Chocobozzz/PeerTube
parent
0b16f5f220
commit
d0e1e32589
|
@ -45,7 +45,6 @@ matrix:
|
||||||
- env: TEST_SUITE=api-4
|
- env: TEST_SUITE=api-4
|
||||||
- env: TEST_SUITE=cli
|
- env: TEST_SUITE=cli
|
||||||
- env: TEST_SUITE=lint
|
- env: TEST_SUITE=lint
|
||||||
- env: TEST_SUITE=jest
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- NODE_PENDING_JOB_WAIT=1000 travis_retry npm run travis -- "$TEST_SUITE"
|
- NODE_PENDING_JOB_WAIT=1000 travis_retry npm run travis -- "$TEST_SUITE"
|
||||||
|
|
|
@ -20,8 +20,7 @@
|
||||||
"postinstall": "npm rebuild node-sass",
|
"postinstall": "npm rebuild node-sass",
|
||||||
"webpack-bundle-analyzer": "webpack-bundle-analyzer",
|
"webpack-bundle-analyzer": "webpack-bundle-analyzer",
|
||||||
"webdriver-manager": "webdriver-manager",
|
"webdriver-manager": "webdriver-manager",
|
||||||
"ngx-extractor": "ngx-extractor",
|
"ngx-extractor": "ngx-extractor"
|
||||||
"test": "jest --no-cache"
|
|
||||||
},
|
},
|
||||||
"license": "GPLv3",
|
"license": "GPLv3",
|
||||||
"typings": "*.d.ts",
|
"typings": "*.d.ts",
|
||||||
|
@ -31,38 +30,6 @@
|
||||||
"simple-get": "^2.8.1",
|
"simple-get": "^2.8.1",
|
||||||
"punycode": "^1.4.1"
|
"punycode": "^1.4.1"
|
||||||
},
|
},
|
||||||
"jest": {
|
|
||||||
"globals": {
|
|
||||||
"ts-jest": {
|
|
||||||
"tsConfigFile": "<rootDir>/src/tsconfig.spec.json"
|
|
||||||
},
|
|
||||||
"__TRANSFORM_HTML__": true
|
|
||||||
},
|
|
||||||
"transform": {
|
|
||||||
"^.+\\.(ts|js|html)$": "<rootDir>/node_modules/jest-preset-angular/preprocessor.js"
|
|
||||||
},
|
|
||||||
"moduleNameMapper": {
|
|
||||||
"^@app/(.*)": "<rootDir>/src/app/$1",
|
|
||||||
"environments/(.*)": "<rootDir>/src/environments/$1"
|
|
||||||
},
|
|
||||||
"testMatch": [
|
|
||||||
"**/__tests__/**/*.+(ts|js)?(x)",
|
|
||||||
"**/+(*.)+(spec|test).+(ts|js)?(x)"
|
|
||||||
],
|
|
||||||
"moduleFileExtensions": [
|
|
||||||
"ts",
|
|
||||||
"tsx",
|
|
||||||
"js",
|
|
||||||
"jsx",
|
|
||||||
"json",
|
|
||||||
"node"
|
|
||||||
],
|
|
||||||
"transformIgnorePatterns": [
|
|
||||||
"<rootDir>/node_modules/(?!lodash-es/)"
|
|
||||||
],
|
|
||||||
"preset": "jest-preset-angular",
|
|
||||||
"setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "~0.13.1",
|
"@angular-devkit/build-angular": "~0.13.1",
|
||||||
"@angular/animations": "~7.2.4",
|
"@angular/animations": "~7.2.4",
|
||||||
|
@ -92,7 +59,6 @@
|
||||||
"@types/hls.js": "^0.12.0",
|
"@types/hls.js": "^0.12.0",
|
||||||
"@types/jasmine": "^2.8.7",
|
"@types/jasmine": "^2.8.7",
|
||||||
"@types/jasminewd2": "^2.0.3",
|
"@types/jasminewd2": "^2.0.3",
|
||||||
"@types/jest": "^23.3.1",
|
|
||||||
"@types/jschannel": "^1.0.0",
|
"@types/jschannel": "^1.0.0",
|
||||||
"@types/linkifyjs": "^2.1.1",
|
"@types/linkifyjs": "^2.1.1",
|
||||||
"@types/lodash-es": "^4.17.0",
|
"@types/lodash-es": "^4.17.0",
|
||||||
|
@ -120,8 +86,6 @@
|
||||||
"https-browserify": "^1.0.0",
|
"https-browserify": "^1.0.0",
|
||||||
"jasmine-core": "^3.1.0",
|
"jasmine-core": "^3.1.0",
|
||||||
"jasmine-spec-reporter": "^4.2.1",
|
"jasmine-spec-reporter": "^4.2.1",
|
||||||
"jest": "^23.5.0",
|
|
||||||
"jest-preset-angular": "^6.0.0",
|
|
||||||
"jschannel": "^1.0.2",
|
"jschannel": "^1.0.2",
|
||||||
"karma": "^3.0.0",
|
"karma": "^3.0.0",
|
||||||
"karma-chrome-launcher": "^2.2.0",
|
"karma-chrome-launcher": "^2.2.0",
|
||||||
|
@ -153,7 +117,6 @@
|
||||||
"stream-browserify": "^2.0.1",
|
"stream-browserify": "^2.0.1",
|
||||||
"stream-http": "^3.0.0",
|
"stream-http": "^3.0.0",
|
||||||
"terser-webpack-plugin": "^1.1.0",
|
"terser-webpack-plugin": "^1.1.0",
|
||||||
"ts-jest": "^23.1.4",
|
|
||||||
"tslint": "^5.7.0",
|
"tslint": "^5.7.0",
|
||||||
"tslint-config-standard": "^8.0.1",
|
"tslint-config-standard": "^8.0.1",
|
||||||
"typescript": "3.2",
|
"typescript": "3.2",
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
import { RecentVideosRecommendationService } from '@app/videos/recommendations/recent-videos-recommendation.service'
|
|
||||||
import { VideosProvider } from '@app/shared/video/video.service'
|
|
||||||
import { EMPTY, of } from 'rxjs'
|
|
||||||
import Mock = jest.Mock
|
|
||||||
|
|
||||||
describe('"Recent Videos" Recommender', () => {
|
|
||||||
describe('getRecommendations', () => {
|
|
||||||
let videosService: VideosProvider
|
|
||||||
let service: RecentVideosRecommendationService
|
|
||||||
let getVideosMock: Mock<any>
|
|
||||||
beforeEach(() => {
|
|
||||||
getVideosMock = jest.fn(() => EMPTY)
|
|
||||||
videosService = {
|
|
||||||
getVideos: getVideosMock
|
|
||||||
}
|
|
||||||
service = new RecentVideosRecommendationService(videosService)
|
|
||||||
})
|
|
||||||
it('should filter out the given UUID from the results', async (done) => {
|
|
||||||
const vids = [
|
|
||||||
{ uuid: 'uuid1' },
|
|
||||||
{ uuid: 'uuid2' }
|
|
||||||
]
|
|
||||||
getVideosMock.mockReturnValueOnce(of({ videos: vids }))
|
|
||||||
const result = await service.getRecommendations({ uuid: 'uuid1' }).toPromise()
|
|
||||||
const uuids = result.map(v => v.uuid)
|
|
||||||
expect(uuids).toEqual(['uuid2'])
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
it('should return 5 results when the given UUID is NOT in the first 5 results', async (done) => {
|
|
||||||
const vids = [
|
|
||||||
{ uuid: 'uuid2' },
|
|
||||||
{ uuid: 'uuid3' },
|
|
||||||
{ uuid: 'uuid4' },
|
|
||||||
{ uuid: 'uuid5' },
|
|
||||||
{ uuid: 'uuid6' },
|
|
||||||
{ uuid: 'uuid7' }
|
|
||||||
]
|
|
||||||
getVideosMock.mockReturnValueOnce(of({ videos: vids }))
|
|
||||||
const result = await service.getRecommendations({ uuid: 'uuid1' }).toPromise()
|
|
||||||
expect(result.length).toEqual(5)
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
it('should return 5 results when the given UUID IS PRESENT in the first 5 results', async (done) => {
|
|
||||||
const vids = [
|
|
||||||
{ uuid: 'uuid1' },
|
|
||||||
{ uuid: 'uuid2' },
|
|
||||||
{ uuid: 'uuid3' },
|
|
||||||
{ uuid: 'uuid4' },
|
|
||||||
{ uuid: 'uuid5' },
|
|
||||||
{ uuid: 'uuid6' }
|
|
||||||
]
|
|
||||||
getVideosMock
|
|
||||||
.mockReturnValueOnce(of({ videos: vids }))
|
|
||||||
const result = await service.getRecommendations({ uuid: 'uuid1' }).toPromise()
|
|
||||||
expect(result.length).toEqual(5)
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
it('should fetch an extra result in case the given UUID is in the list', async (done) => {
|
|
||||||
await service.getRecommendations({ uuid: 'uuid1' }).toPromise()
|
|
||||||
let expectedSize = service.pageSize + 1
|
|
||||||
let params = { currentPage: jasmine.anything(), itemsPerPage: expectedSize }
|
|
||||||
expect(getVideosMock).toHaveBeenCalledWith(params, jasmine.anything())
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
|
@ -1,22 +0,0 @@
|
||||||
import { RecommendedVideosStore } from '@app/videos/recommendations/recommended-videos.store'
|
|
||||||
import { RecommendationService } from '@app/videos/recommendations/recommendations.service'
|
|
||||||
|
|
||||||
describe('RecommendedVideosStore', () => {
|
|
||||||
describe('requestNewRecommendations', () => {
|
|
||||||
let store: RecommendedVideosStore
|
|
||||||
let service: RecommendationService
|
|
||||||
beforeEach(() => {
|
|
||||||
service = {
|
|
||||||
getRecommendations: jest.fn(() => new Promise((r) => r()))
|
|
||||||
}
|
|
||||||
store = new RecommendedVideosStore(service)
|
|
||||||
})
|
|
||||||
it('should pull new videos from the service one time when given the same UUID twice', () => {
|
|
||||||
store.requestNewRecommendations('some-uuid')
|
|
||||||
store.requestNewRecommendations('some-uuid')
|
|
||||||
// Requests aren't fulfilled until someone asks for them (ie: subscribes)
|
|
||||||
store.recommendations$.subscribe()
|
|
||||||
expect(service.getRecommendations).toHaveBeenCalledTimes(1)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
|
@ -1 +0,0 @@
|
||||||
import 'jest-preset-angular';
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"extends": "../tsconfig.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"outDir": "../out-tsc/spec",
|
|
||||||
"module": "commonjs",
|
|
||||||
"target": "es5",
|
|
||||||
"baseUrl": "",
|
|
||||||
"allowJs": true
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"test.ts"
|
|
||||||
],
|
|
||||||
"include": [
|
|
||||||
"**/*.spec.ts",
|
|
||||||
"**/*.d.ts"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -36,8 +36,4 @@ elif [ "$1" = "lint" ]; then
|
||||||
( cd client
|
( cd client
|
||||||
npm run lint
|
npm run lint
|
||||||
)
|
)
|
||||||
elif [ "$1" = "jest" ]; then
|
|
||||||
( cd client
|
|
||||||
npm run test
|
|
||||||
)
|
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue