mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-04 03:27:12 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
describe('tasks', () => {
 | 
						|
  beforeEach(() => {
 | 
						|
    this.dismissedTasks = new Set<number>()
 | 
						|
 | 
						|
    cy.fixture('tasks/tasks.json').then((tasksViewsJson) => {
 | 
						|
      // acknowledge tasks POST
 | 
						|
      cy.intercept(
 | 
						|
        'POST',
 | 
						|
        'http://localhost:8000/api/acknowledge_tasks/',
 | 
						|
        (req) => {
 | 
						|
          req.body['tasks'].forEach((t) => this.dismissedTasks.add(t)) // store this for later
 | 
						|
          req.reply({ result: 'OK' })
 | 
						|
        }
 | 
						|
      )
 | 
						|
 | 
						|
      cy.intercept('GET', 'http://localhost:8000/api/tasks/', (req) => {
 | 
						|
        let response = [...tasksViewsJson]
 | 
						|
        if (this.dismissedTasks.size) {
 | 
						|
          response = response.filter((t) => {
 | 
						|
            return !this.dismissedTasks.has(t.id)
 | 
						|
          })
 | 
						|
        }
 | 
						|
 | 
						|
        req.reply(response)
 | 
						|
      }).as('tasks')
 | 
						|
    })
 | 
						|
 | 
						|
    cy.visit('/tasks')
 | 
						|
    cy.wait('@tasks')
 | 
						|
  })
 | 
						|
 | 
						|
  it('should show a list of dismissable tasks in tabs', () => {
 | 
						|
    cy.get('tbody').find('tr:visible').its('length').should('eq', 10) // double because collapsible result tr
 | 
						|
    cy.wait(500) // stabilizes the test, for some reason...
 | 
						|
    cy.get('tbody')
 | 
						|
      .find('button:visible')
 | 
						|
      .contains('Dismiss')
 | 
						|
      .first()
 | 
						|
      .click()
 | 
						|
      .wait('@tasks')
 | 
						|
      .wait(2000)
 | 
						|
      .then(() => {
 | 
						|
        cy.get('tbody').find('tr:visible').its('length').should('eq', 8) // double because collapsible result tr
 | 
						|
      })
 | 
						|
  })
 | 
						|
 | 
						|
  it('should correctly switch between task tabs', () => {
 | 
						|
    cy.get('tbody').find('tr:visible').its('length').should('eq', 10) // double because collapsible result tr
 | 
						|
    cy.wait(500) // stabilizes the test, for some reason...
 | 
						|
    cy.get('app-tasks')
 | 
						|
      .find('a:visible')
 | 
						|
      .contains('Queued')
 | 
						|
      .first()
 | 
						|
      .click()
 | 
						|
      .wait(2000)
 | 
						|
      .then(() => {
 | 
						|
        cy.get('tbody').find('tr:visible').should('not.exist')
 | 
						|
      })
 | 
						|
    cy.get('app-tasks')
 | 
						|
      .find('a:visible')
 | 
						|
      .contains('Started')
 | 
						|
      .first()
 | 
						|
      .click()
 | 
						|
      .wait(2000)
 | 
						|
      .then(() => {
 | 
						|
        cy.get('tbody').find('tr:visible').its('length').should('eq', 2) // double because collapsible result tr
 | 
						|
      })
 | 
						|
    cy.get('app-tasks')
 | 
						|
      .find('a:visible')
 | 
						|
      .contains('Complete')
 | 
						|
      .first()
 | 
						|
      .click()
 | 
						|
      .wait('@tasks')
 | 
						|
      .wait(2000)
 | 
						|
      .then(() => {
 | 
						|
        cy.get('tbody').find('tr:visible').its('length').should('eq', 12) // double because collapsible result tr
 | 
						|
      })
 | 
						|
  })
 | 
						|
 | 
						|
  it('should allow toggling all tasks in list and warn on dismiss', () => {
 | 
						|
    cy.get('thead').find('input[type="checkbox"]').first().click()
 | 
						|
    cy.get('body').find('button').contains('Dismiss selected').first().click()
 | 
						|
    cy.contains('Confirm')
 | 
						|
    cy.get('.modal')
 | 
						|
      .contains('button', 'Dismiss')
 | 
						|
      .click()
 | 
						|
      .wait('@tasks')
 | 
						|
      .wait(2000)
 | 
						|
      .then(() => {
 | 
						|
        cy.get('tbody').find('tr:visible').should('not.exist')
 | 
						|
      })
 | 
						|
  })
 | 
						|
})
 |