Merge pull request #4529 from cheahjs/fix/integration-tests

ci: fix cypress integration tests
This commit is contained in:
Timothy Jaeryang Baek 2024-08-11 23:41:01 +02:00 committed by GitHub
commit 748be3e637
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 13 deletions

View File

@ -15,6 +15,13 @@ jobs:
name: Run Cypress Integration Tests name: Run Cypress Integration Tests
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Maximize build space
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v4 uses: actions/checkout@v4

View File

@ -38,9 +38,10 @@ describe('Settings', () => {
// User's message should be visible // User's message should be visible
cy.get('.chat-user').should('exist'); cy.get('.chat-user').should('exist');
// Wait for the response // Wait for the response
cy.get('.chat-assistant', { timeout: 120_000 }) // .chat-assistant is created after the first token is received // .chat-assistant is created after the first token is received
.find('div[aria-label="Generation Info"]', { timeout: 120_000 }) // Generation Info is created after the stop token is received cy.get('.chat-assistant', { timeout: 10_000 }).should('exist');
.should('exist'); // Generation Info is created after the stop token is received
cy.get('div[aria-label="Generation Info"]', { timeout: 120_000 }).should('exist');
}); });
it('user can share chat', () => { it('user can share chat', () => {
@ -57,21 +58,24 @@ describe('Settings', () => {
// User's message should be visible // User's message should be visible
cy.get('.chat-user').should('exist'); cy.get('.chat-user').should('exist');
// Wait for the response // Wait for the response
cy.get('.chat-assistant', { timeout: 120_000 }) // .chat-assistant is created after the first token is received // .chat-assistant is created after the first token is received
.find('div[aria-label="Generation Info"]', { timeout: 120_000 }) // Generation Info is created after the stop token is received cy.get('.chat-assistant', { timeout: 10_000 }).should('exist');
.should('exist'); // Generation Info is created after the stop token is received
cy.get('div[aria-label="Generation Info"]', { timeout: 120_000 }).should('exist');
// spy on requests // spy on requests
const spy = cy.spy(); const spy = cy.spy();
cy.intercept('GET', '/api/v1/chats/*', spy); cy.intercept('POST', '/api/v1/chats/**/share', spy);
// Open context menu // Open context menu
cy.get('#chat-context-menu-button').click(); cy.get('#chat-context-menu-button').click();
// Click share button // Click share button
cy.get('#chat-share-button').click(); cy.get('#chat-share-button').click();
// Check if the share dialog is visible // Check if the share dialog is visible
cy.get('#copy-and-share-chat-button').should('exist'); cy.get('#copy-and-share-chat-button').should('exist');
cy.wrap({}, { timeout: 5000 }).should(() => { // Click the copy button
// Check if the request was made twice (once for to replace chat object and once more due to change event) cy.get('#copy-and-share-chat-button').click();
expect(spy).to.be.callCount(2); cy.wrap({}, { timeout: 5_000 }).should(() => {
// Check if the share request was made
expect(spy).to.be.callCount(1);
}); });
}); });
@ -89,9 +93,10 @@ describe('Settings', () => {
// User's message should be visible // User's message should be visible
cy.get('.chat-user').should('exist'); cy.get('.chat-user').should('exist');
// Wait for the response // Wait for the response
cy.get('.chat-assistant', { timeout: 120_000 }) // .chat-assistant is created after the first token is received // .chat-assistant is created after the first token is received
.find('div[aria-label="Generation Info"]', { timeout: 120_000 }) // Generation Info is created after the stop token is received cy.get('.chat-assistant', { timeout: 10_000 }).should('exist');
.should('exist'); // Generation Info is created after the stop token is received
cy.get('div[aria-label="Generation Info"]', { timeout: 120_000 }).should('exist');
// Click on the generate image button // Click on the generate image button
cy.get('[aria-label="Generate Image"]').click(); cy.get('[aria-label="Generate Image"]').click();
// Wait for image to be visible // Wait for image to be visible