Skip to content

Commit

Permalink
Merge pull request #811 from nextcloud/bugfix/noid/view-create
Browse files Browse the repository at this point in the history
  • Loading branch information
juliusknorr authored Feb 2, 2024
2 parents fb2e475 + 0843c53 commit 9f56adb
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
77 changes: 77 additions & 0 deletions cypress/e2e/view.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
let localUser

describe('Interact with views', () => {

before(function() {
cy.createRandomUser().then(user => {
localUser = user
})
})

beforeEach(function() {
cy.login(localUser)
cy.visit('apps/tables')
})

it('Create view and insert rows in the view', () => {
const title = 'View for adding rows'
cy.createTable('View filtering test table')
cy.createTextLineColumn('title', null, null, true)
cy.createSelectionColumn('selection', ['sel1', 'sel2', 'sel3', 'sel4'], null, false)

// add row
cy.get('button').contains('Create row').click()
cy.fillInValueTextLine('title', 'first row')
cy.fillInValueSelection('selection', 'sel1')
cy.get('button').contains('Save').click()

// add row
cy.get('button').contains('Create row').click()
cy.fillInValueTextLine('title', 'second row')
cy.fillInValueSelection('selection', 'sel2')
cy.get('button').contains('Save').click()

// add row
cy.get('button').contains('Create row').click()
cy.fillInValueTextLine('title', 'sevenths row')
cy.fillInValueSelection('selection', 'sel2')
cy.get('button').contains('Save').click()

cy.get('[data-cy="customTableAction"] button').click()
cy.get('.v-popper__popper li button span').contains('Create view').click({ force: true })
cy.get('.modal-container #settings-section_title input').type(title)

// ## add filter
cy.get('button').contains('Add new filter group').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
cy.get('ul.vs__dropdown-menu li span[title="Is equal"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(2).click()
cy.get('ul.vs__dropdown-menu li span[title="sel2"]').click()

// ## save view
cy.intercept({ method: 'POST', url: '**/apps/tables/view' }).as('createView')
cy.intercept({ method: 'PUT', url: '**/apps/tables/view/*' }).as('updateView')
cy.contains('button', 'Create View').click()
cy.wait('@createView')
cy.wait('@updateView')
cy.contains('.app-navigation-entry-link span', title).should('exist')

const expected = ['sevenths row', 'second row']
expected.forEach(item => {
cy.get('.custom-table table tr td div').contains(item).should('be.visible')
})

// Add new row in the views
cy.get('button').contains('Create row').click()
cy.fillInValueTextLine('title', 'new row')
cy.fillInValueSelection('selection', 'sel2')
cy.get('button').contains('Save').click()

expected.push('new row')
expected.forEach(item => {
cy.get('.custom-table table tr td div').contains(item).should('be.visible')
})
})
})
1 change: 1 addition & 0 deletions lib/Service/RowService.php
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ public function create(?int $tableId, ?int $viewId, array $data): Row2 {
$data = $this->cleanupData($data, $columns, $tableId, $viewId);

// perf
$tableId = $tableId ?? $view->getTableId();
$row2 = new Row2();
$row2->setTableId($tableId);
$row2->setData($data);
Expand Down

0 comments on commit 9f56adb

Please sign in to comment.