Skip to content

Commit 625b4ff

Browse files
authored
Fix #18 Add filter text testing (#20)
This adds a test to filter text fields properly. Any other field types do not filter with like operators. This is a function of the Pacifica Metadata API. Signed-off-by: David Brown <dmlb2000@gmail.com>
1 parent 6a877b7 commit 625b4ff

File tree

2 files changed

+35
-3
lines changed

2 files changed

+35
-3
lines changed

src/PacificaAPI.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ export const getObjectList = MDUrl => {
1414
return Axios.get(`${MDUrl}/objectinfo/list`)
1515
}
1616

17-
export const filteredWhereArgs = (fieldList, filtered) => {
17+
export const filteredWhereArgs = (fieldTypes, filtered) => {
1818
let whereArgs = {}
1919
for (let i = 0; i < filtered.length; i++) {
2020
if (filtered[i].id === '_id') {
2121
whereArgs._id = filtered[i].value
2222
return whereArgs
2323
}
24-
switch (fieldList[filtered[i].id]) {
24+
switch (fieldTypes[filtered[i].id]) {
2525
case 'TEXT':
2626
case 'VARCHAR':
2727
filtered[i].disableLike = false
@@ -154,7 +154,7 @@ export const getData = (
154154
) => {
155155
return new Promise((resolve, reject) => {
156156
Axios.get(`${MDUrl}/objectinfo/${object}`).then(res => {
157-
let whereArgs = filteredWhereArgs(res.data.field_list, filtered)
157+
let whereArgs = filteredWhereArgs(res.data.field_types, filtered)
158158
Axios.get(`${MDUrl}/objectinfo/${object}`, { params: whereArgs }).then(res => {
159159
let recordCount = res.data.record_count
160160
let columns = convertColumns(

tests/issue_18.test.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
module.exports = {
2+
'Create a User Group entry': function (browser) {
3+
// Open up the browser to the website
4+
browser.url('http://localhost:8080')
5+
browser.pause(100)
6+
// Wait for the open drawer icon to show up
7+
browser.waitForElementPresent('button[id=header-open-drawer]')
8+
// Open the drawer
9+
browser.click('button[id=header-open-drawer]')
10+
browser.pause(100)
11+
// Wait for Relationships to show up in the drawer
12+
browser.waitForElementPresent('div[id=listitem-relationships]')
13+
// Click on the Relationships text
14+
browser.click('div[id=listitem-relationships]')
15+
browser.pause(100)
16+
// Wait for the close drawer icon to show up
17+
browser.waitForElementPresent('button[id=drawer-close-drawer]')
18+
// Close the drawer
19+
browser.click('button[id=drawer-close-drawer]')
20+
browser.pause(100)
21+
// Wait for the `name` filter field to show up
22+
browser.waitForElementPresent('#root > div > main > div:nth-child(2) > div.ReactTable > div.rt-table > div.rt-thead.-filters > div > div:nth-child(6) > input[type=text]')
23+
// Enter a short string in the filter field for `name`
24+
browser.setValue('#root > div > main > div:nth-child(2) > div.ReactTable > div.rt-table > div.rt-thead.-filters > div > div:nth-child(6) > input[type=text]', 'mem')
25+
browser.pause(200)
26+
// Verify the member_of relationship is in the table
27+
browser.expect.element('#root').text.to.contain('member_of')
28+
browser.expect.element('#root').text.to.not.contain('custodian')
29+
browser.expect.element('#root').text.to.not.contain('authorized_releaser')
30+
browser.end()
31+
}
32+
}

0 commit comments

Comments
 (0)