graphdb-workbench-tests
Version:
Cypress tests for GraphDB workbench
159 lines (129 loc) • 10 kB
JavaScript
import {SimilarityIndexStubs} from "../../../../stubs/similarity-index-stubs.js";
import {AutocompleteStubs} from "../../../../stubs/autocomplete/autocomplete-stubs.js";
import {GuideDialogSteps} from "../../../../steps/guides/guide-dialog-steps.js";
import {MainMenuSteps} from "../../../../steps/main-menu-steps.js";
import {TTYGViewSteps} from "../../../../steps/ttyg/ttyg-view-steps.js";
import {TtygAgentSettingsModalSteps} from "../../../../steps/ttyg/ttyg-agent-settings-modal.steps.js";
import {GuideSteps} from "../../../../steps/guides/guide-steps.js";
import {GuidesStubs} from "../../../../stubs/guides/guides-stubs.js";
import {TTYGStubs} from "../../../../stubs/ttyg/ttyg-stubs.js";
import {RepositoriesStubs} from "../../../../stubs/repositories/repositories-stubs.js";
// TODO: there is some issue with the context side field focus that breaks the test. Should be fixed soon
describe.skip('ttyg configure agent guide', () => {
let repositoryId;
beforeEach(() => {
GuidesStubs.stubCreateAndConfigureAgentGuide();
SimilarityIndexStubs.stubTTYGSimilarityInstances();
AutocompleteStubs.stubAutocompleteEnabled(true);
TTYGStubs.stubAgentDefaultsGet();
TTYGStubs.stubAgentListGet();
repositoryId = 'configure-ttyg-agent-guide-' + Date.now();
RepositoriesStubs.stubBaseEndpoints(repositoryId);
cy.createRepository({id: repositoryId});
cy.presetRepository(repositoryId);
GuideSteps.visit();
GuideSteps.verifyGuidesListExists();
cy.wait('@getGuides');
GuideSteps.runFirstGuide()
});
afterEach(() => {
cy.deleteRepository(repositoryId);
})
it('should create and configure TTYG agent with actions', () => {
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/30');
GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Talk to Your Graph view to create an agent.');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
MainMenuSteps.clickOnMenuLab();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 3/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
MainMenuSteps.clickOnTTYGSubmenu();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 5/30');
GuideDialogSteps.assertDialogWithContentIsVisible('An agent is a helpful assistant that can answer your queries. You need to configure an agent in order to ask anything of Talk to Your Graph.');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 7/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the create agent button to create a new agent.');
TTYGViewSteps.clickCreateAgentButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 9/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Type a name for the agent. You will refer to it later.');
TtygAgentSettingsModalSteps.typeAgentName('MyAgent');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 10/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Here you can type the name of the OpenAI model to be used.');
TtygAgentSettingsModalSteps.clearLLMModel();
TtygAgentSettingsModalSteps.typeLLMModel('gpt-3.5-turbo');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 11/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Sets the sampling temperature of the agent. Lower values result in more consistent, repetitive responses generated by the agent and higher values result in a wider variety of responses');
TtygAgentSettingsModalSteps.setTemperature(0.8);
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 12/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Sets the nucleus sampling of the agent');
TtygAgentSettingsModalSteps.setTopP(0.9);
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 13/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Enabling SPARQL search allows the agent to answers questions by performing a SPARQL query.');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 14/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable SPARQL search query method.');
TtygAgentSettingsModalSteps.enableSparqlExtractionMethod();
GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 15/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable providing an ontology in a named graph.');
TtygAgentSettingsModalSteps.selectSparqlMethodOntologyGraph();
GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 16/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Type http://example.org/some/test/ontology as the named graph which contains the ontology.');
TtygAgentSettingsModalSteps.clearSparqlMethodOntologyGraphField();
TtygAgentSettingsModalSteps.typeSparqlMethodOntologyGraphField('http://example.org/some/test/ontology');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 17/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Check to automatically add missing namespaces.');
TtygAgentSettingsModalSteps.toggleAddMissingNamespacesCheckbox();
GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 18/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Enabling FTS search allows the agent to answer questions by using full-text search in literals and IRIs.');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 19/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable FTS search query method.');
TtygAgentSettingsModalSteps.enableFtsExtractionMethod();
GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 20/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Type 100 as the maximum number of triples to retrieve per call.');
TtygAgentSettingsModalSteps.setFtsSearchMaxTriples(100);
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 21/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Enabling Similarity search allows the agent to answer questions by using Similarity search.');
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 22/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Similarity search query method.');
TtygAgentSettingsModalSteps.enableSimilaritySearchMethodPanel();
GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 23/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Select the index to use for Similarity search.');
TtygAgentSettingsModalSteps.selectSimilarityIndex(0);
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 24/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Full-text search in labels for IRI discovery');
TtygAgentSettingsModalSteps.checkIriDiscoverySearchCheckbox();
GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 25/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Autocomplete for IRI discovery.');
TtygAgentSettingsModalSteps.checkAutocompleteSearchCheckbox();
GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 26/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Set the Max number of results (IRIs) per call to 15');
TtygAgentSettingsModalSteps.setAutocompleteMaxResults(15);
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 27/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Set Context Size to 4096 so the model can use the ontology and conversation history to answer correctly');
TtygAgentSettingsModalSteps.getContextSizeField().focus();
TtygAgentSettingsModalSteps.clearContextSize();
TtygAgentSettingsModalSteps.enterContextSize(4096);
GuideDialogSteps.clickOnNextButton();
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 28/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Enter the following in the input:');
TtygAgentSettingsModalSteps.clearUserInstructions();
TtygAgentSettingsModalSteps.getCodeToCopy().then(code => {
TtygAgentSettingsModalSteps.typeUserInstructions(code);
GuideDialogSteps.clickOnNextButton();
});
GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 29/30');
GuideDialogSteps.assertDialogWithContentIsVisible('Click to save the agent settings');
TtygAgentSettingsModalSteps.saveAgent();
});
})