mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-09-17 14:21:29 +00:00
[ACS-8398] Unit tests for agents and search ai (#9974)
* ACS-8398 Unit tests for search ai api and agents api * ACS-8398 Unit tests for getAnswer function from SearchAiApi, corrections for unit tests for SearchAiApi and AgentsApi * ACS-8398 Unit tests for SearchAiService and AgentService
This commit is contained in:
committed by
Aleksander Sklorz
parent
ad9c1a0ce0
commit
16e851e6b5
71
lib/js-api/test/content-services/agentsApi.spec.ts
Normal file
71
lib/js-api/test/content-services/agentsApi.spec.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* 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 { AgentMock, EcmAuthMock } from '../mockObjects';
|
||||
import { AgentsApi, AlfrescoApi } from '../../src';
|
||||
import assert from 'assert';
|
||||
|
||||
describe('AgentsApi', () => {
|
||||
let agentMock: AgentMock;
|
||||
let agentsApi: AgentsApi;
|
||||
|
||||
beforeEach((done) => {
|
||||
const hostEcm = 'https://127.0.0.1:8080';
|
||||
const authResponseMock = new EcmAuthMock(hostEcm);
|
||||
agentMock = new AgentMock(hostEcm);
|
||||
authResponseMock.get201Response();
|
||||
const alfrescoJsApi = new AlfrescoApi({
|
||||
hostEcm
|
||||
});
|
||||
alfrescoJsApi.login('admin', 'admin').then(() => done());
|
||||
agentsApi = new AgentsApi(alfrescoJsApi);
|
||||
});
|
||||
|
||||
describe('getAgents', () => {
|
||||
it('should load list of agents', (done) => {
|
||||
agentMock.mockGetAgents200Response();
|
||||
|
||||
agentsApi.getAgents().then((paging) => {
|
||||
assert.deepStrictEqual(paging, {
|
||||
list: {
|
||||
pagination: {
|
||||
count: 2,
|
||||
hasMoreItems: false,
|
||||
skipCount: 0,
|
||||
maxItems: 100
|
||||
},
|
||||
entries: [
|
||||
{
|
||||
entry: {
|
||||
id: 'some id 1',
|
||||
name: 'some name 1'
|
||||
}
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
id: 'some id 2',
|
||||
name: 'some name 2'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
116
lib/js-api/test/content-services/searchAiApi.spec.ts
Normal file
116
lib/js-api/test/content-services/searchAiApi.spec.ts
Normal file
@@ -0,0 +1,116 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* 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 { AlfrescoApi, SearchAiApi } from '../../src';
|
||||
import { EcmAuthMock, SearchAiMock } from '../mockObjects';
|
||||
import assert from 'assert';
|
||||
|
||||
describe('SearchAiApi', () => {
|
||||
let searchAiApi: SearchAiApi;
|
||||
let searchAiMock: SearchAiMock;
|
||||
|
||||
beforeEach((done) => {
|
||||
const hostEcm = 'https://127.0.0.1:8080';
|
||||
const authResponseMock = new EcmAuthMock(hostEcm);
|
||||
searchAiMock = new SearchAiMock(hostEcm);
|
||||
authResponseMock.get201Response();
|
||||
const alfrescoJsApi = new AlfrescoApi({
|
||||
hostEcm
|
||||
});
|
||||
alfrescoJsApi.login('admin', 'admin').then(() => done());
|
||||
searchAiApi = new SearchAiApi(alfrescoJsApi);
|
||||
});
|
||||
|
||||
describe('ask', () => {
|
||||
it('should load question information', (done) => {
|
||||
searchAiMock.mockGetAsk200Response();
|
||||
|
||||
searchAiApi
|
||||
.ask([
|
||||
{
|
||||
question: 'some question 1',
|
||||
nodeIds: ['some node id 1']
|
||||
},
|
||||
{
|
||||
question: 'some question 2',
|
||||
nodeIds: ['some node id 2', 'some node id 3']
|
||||
}
|
||||
])
|
||||
.then((questions) => {
|
||||
assert.deepStrictEqual(questions, [
|
||||
{
|
||||
questionId: 'some id 1',
|
||||
question: 'some question 1',
|
||||
restrictionQuery: 'some node id 1'
|
||||
},
|
||||
{
|
||||
questionId: 'some id 2',
|
||||
question: 'some question 2',
|
||||
restrictionQuery: 'some node id 2,some node id 3'
|
||||
}
|
||||
]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('getAnswer', () => {
|
||||
it('should load question answer', (done) => {
|
||||
searchAiMock.mockGetAnswer200Response();
|
||||
|
||||
searchAiApi.getAnswer('id1').then((answer) => {
|
||||
assert.deepStrictEqual(answer, {
|
||||
list: {
|
||||
pagination: {
|
||||
count: 2,
|
||||
hasMoreItems: false,
|
||||
skipCount: 0,
|
||||
maxItems: 100
|
||||
},
|
||||
entries: [
|
||||
{
|
||||
entry: {
|
||||
answer: 'Some answer 1',
|
||||
questionId: 'some id 1',
|
||||
references: [
|
||||
{
|
||||
referenceId: 'some reference id 1',
|
||||
referenceText: 'some reference text 1'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
answer: 'Some answer 2',
|
||||
questionId: 'some id 2',
|
||||
references: [
|
||||
{
|
||||
referenceId: 'some reference id 2',
|
||||
referenceText: 'some reference text 2'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
50
lib/js-api/test/mockObjects/content-services/agent.mock.ts
Normal file
50
lib/js-api/test/mockObjects/content-services/agent.mock.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* 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 { BaseMock } from '../base.mock';
|
||||
import nock from 'nock';
|
||||
|
||||
export class AgentMock extends BaseMock {
|
||||
mockGetAgents200Response(): void {
|
||||
nock(this.host, { encodedQueryParams: true })
|
||||
.get('/alfresco/api/-default-/private/hxi/versions/1/agents')
|
||||
.reply(200, {
|
||||
list: {
|
||||
pagination: {
|
||||
count: 2,
|
||||
hasMoreItems: false,
|
||||
skipCount: 0,
|
||||
maxItems: 100
|
||||
},
|
||||
entries: [
|
||||
{
|
||||
entry: {
|
||||
id: 'some id 1',
|
||||
name: 'some name 1'
|
||||
}
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
id: 'some id 2',
|
||||
name: 'some name 2'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -0,0 +1,88 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* 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 { BaseMock } from '../base.mock';
|
||||
import nock from 'nock';
|
||||
|
||||
export class SearchAiMock extends BaseMock {
|
||||
mockGetAsk200Response(): void {
|
||||
nock(this.host, { encodedQueryParams: true })
|
||||
.get('/alfresco/api/-default-/private/hxi/versions/1/questions', [
|
||||
{
|
||||
question: 'some question 1',
|
||||
restrictionQuery: 'some node id 1'
|
||||
},
|
||||
{
|
||||
question: 'some question 2',
|
||||
restrictionQuery: 'some node id 2,some node id 3'
|
||||
}
|
||||
])
|
||||
.reply(200, [
|
||||
{
|
||||
question: 'some question 1',
|
||||
questionId: 'some id 1',
|
||||
restrictionQuery: 'some node id 1'
|
||||
},
|
||||
{
|
||||
question: 'some question 2',
|
||||
questionId: 'some id 2',
|
||||
restrictionQuery: 'some node id 2,some node id 3'
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
mockGetAnswer200Response(): void {
|
||||
nock(this.host, { encodedQueryParams: true })
|
||||
.get('/alfresco/api/-default-/private/hxi/versions/1/answers?questionId=id1')
|
||||
.reply(200, {
|
||||
list: {
|
||||
pagination: {
|
||||
count: 2,
|
||||
hasMoreItems: false,
|
||||
skipCount: 0,
|
||||
maxItems: 100
|
||||
},
|
||||
entries: [
|
||||
{
|
||||
entry: {
|
||||
answer: 'Some answer 1',
|
||||
questionId: 'some id 1',
|
||||
references: [
|
||||
{
|
||||
referenceId: 'some reference id 1',
|
||||
referenceText: 'some reference text 1'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
answer: 'Some answer 2',
|
||||
questionId: 'some id 2',
|
||||
references: [
|
||||
{
|
||||
referenceId: 'some reference id 2',
|
||||
referenceText: 'some reference text 2'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -15,6 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './content-services/agent.mock';
|
||||
export * from './content-services/categories.mock';
|
||||
export * from './content-services/comment.mock';
|
||||
export * from './content-services/ecm-auth.mock';
|
||||
@@ -26,6 +27,7 @@ export * from './content-services/groups.mock';
|
||||
export * from './content-services/find-nodes.mock';
|
||||
export * from './content-services/rendition.mock';
|
||||
export * from './content-services/search.mock';
|
||||
export * from './content-services/search-ai.mock';
|
||||
export * from './content-services/tag.mock';
|
||||
export * from './content-services/upload.mock';
|
||||
export * from './content-services/version.mock';
|
||||
|
Reference in New Issue
Block a user