Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing User-Agent header breaks submissions/entities/datasets #896

Closed
alxndrsn opened this issue May 26, 2023 · 1 comment · Fixed by #907
Closed

Missing User-Agent header breaks submissions/entities/datasets #896

alxndrsn opened this issue May 26, 2023 · 1 comment · Fixed by #907
Assignees
Labels

Comments

@alxndrsn
Copy link
Contributor

alxndrsn commented May 26, 2023

The User-Agent HTTP request header is optional.

It looks like there are places in the code where it's assumed to be present - if not set, 30+ tests break (example build at https://app.circleci.com/pipelines/github/alxndrsn/odk-central-backend/143/workflows/a620264d-af2f-41ff-9202-33336fe144f6/jobs/150):

Test list
...
  1987 passing (8m)
  17 pending
  34 failing

  1) datasets and entities
       listing and downloading datasets
         projects/:id/datasets/:dataset.csv GET
           should not return deleted entities:
     Error: expected 200 "OK", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/datasets.js:420:12
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  2) datasets and entities
       listing and downloading datasets
         projects/:id/datasets/:dataset.csv GET
           should return updated value correctly:
     Error: expected 200 "OK", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/datasets.js:454:12
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  3) datasets and entities
       linking form attachments to datasets
         projects/:id/forms/:formId/attachments/:name (entities dataset)
           should not return deleted entities:
     Error: expected 200 "OK", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/datasets.js:1367:12
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  4) datasets and entities
       linking form attachments to datasets
         projects/:id/forms/:formId/attachments/:name (entities dataset)
           should return updated value correctly:
     Error: expected 200 "OK", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/datasets.js:1398:12
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  5) datasets and entities
       configurable approval requirements
         PATCH /datasets/:name
           should automatically convert pending submissions:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/datasets.js:2454:52
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/datasets.js:2447:9
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  6) Entities API
       GET /datasets/:name/entities
         should return metadata of the entities of the dataset:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:49.503Z',
  current: true,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null
} to be an Entity Def (version)
    expected null to be a string
        expected null to have type string
            expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as EntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:90:66
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/entities.js:88:18
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:85:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  7) Entities API
       GET /datasets/:name/entities
         should return metadata of the entities of the dataset - only deleted:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:50.072Z',
  current: true,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null
} to be an Entity Def (version)
    expected null to be a string
        expected null to have type string
            expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as EntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:107:66
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/entities.js:105:18
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:102:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  8) Entities API
       GET /datasets/:name/entities
         should return extended metadata of the entities of the dataset:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:50.633Z',
  current: true,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null,
  creator: Object {
    id: 5,
    type: 'user',
    displayName: 'Alice',
    createdAt: '2023-05-26T14:52:41.572Z',
    updatedAt: null,
    deletedAt: null
  }
} to be an Extended Entity Def (version)
    expected Object {
      createdAt: '2023-05-26T14:53:50.633Z',
      current: true,
      label: 'Alice (88)',
      creatorId: 5,
      userAgent: null,
      creator: Object {
        id: 5,
        type: 'user',
        displayName: 'Alice',
        createdAt: '2023-05-26T14:52:41.572Z',
        updatedAt: null,
        deletedAt: null
      }
    } to be an Entity Def (version)
        expected null to be a string
            expected null to have type string
                expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as ExtendedEntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:123:66
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/entities.js:121:18
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:117:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  9) Entities API
       GET /datasets/:name/entities
         should not mince the object properties:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:51.188Z',
  current: true,
  label: 'Jane (30)',
  creatorId: 5,
  userAgent: null,
  creator: Object {
    id: 5,
    type: 'user',
    displayName: 'Alice',
    createdAt: '2020-01-01T00:00:00.000Z',
    updatedAt: null,
    deletedAt: null
  }
} to be an Extended Entity Def (version)
    expected Object {
      createdAt: '2023-05-26T14:53:51.188Z',
      current: true,
      label: 'Jane (30)',
      creatorId: 5,
      userAgent: null,
      creator: Object {
        id: 5,
        type: 'user',
        displayName: 'Alice',
        createdAt: '2020-01-01T00:00:00.000Z',
        updatedAt: null,
        deletedAt: null
      }
    } to be an Entity Def (version)
        expected null to be a string
            expected null to have type string
                expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as ExtendedEntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:150:66
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/entities.js:148:18
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:144:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  10) Entities API
       GET /datasets/:name/entities/:uuid
         should return full entity:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:53.639Z',
  current: true,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null,
  data: Object { age: '88', first_name: 'Alice' }
} to be an Entity Def (version)
    expected null to be a string
        expected null to have type string
            expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as EntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:198:69
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:194:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  11) Entities API
       GET /datasets/:name/entities/:uuid
         should return full extended entity:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:54.202Z',
  current: true,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null,
  data: Object { age: '88', first_name: 'Alice' },
  creator: Object {
    id: 5,
    type: 'user',
    displayName: 'Alice',
    createdAt: '2023-05-26T14:52:41.572Z',
    updatedAt: null,
    deletedAt: null
  }
} to be an Extended Entity Def (version)
    expected Object {
      createdAt: '2023-05-26T14:53:54.202Z',
      current: true,
      label: 'Alice (88)',
      creatorId: 5,
      userAgent: null,
      data: Object { age: '88', first_name: 'Alice' },
      creator: Object {
        id: 5,
        type: 'user',
        displayName: 'Alice',
        createdAt: '2023-05-26T14:52:41.572Z',
        updatedAt: null,
        deletedAt: null
      }
    } to be an Entity Def (version)
        expected null to be a string
            expected null to have type string
                expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as ExtendedEntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:214:69
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:209:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  12) Entities API
       GET /datasets/:name/entities/:uuid
         should not mince the object properties:
     AssertionError: expected Object {
  createdAt: '2023-01-01T00:00:00.000Z',
  current: true,
  label: 'two',
  creatorId: 6,
  userAgent: null,
  data: Object { age: '88', first_name: 'Alice' },
  creator: Object {
    id: 6,
    type: 'user',
    displayName: 'Bob',
    createdAt: '2021-01-01T00:00:00.000Z',
    updatedAt: null,
    deletedAt: null
  }
} to be an Extended Entity Def (version)
    expected Object {
      createdAt: '2023-01-01T00:00:00.000Z',
      current: true,
      label: 'two',
      creatorId: 6,
      userAgent: null,
      data: Object { age: '88', first_name: 'Alice' },
      creator: Object {
        id: 6,
        type: 'user',
        displayName: 'Bob',
        createdAt: '2021-01-01T00:00:00.000Z',
        updatedAt: null,
        deletedAt: null
      }
    } to be an Entity Def (version)
        expected null to be a string
            expected null to have type string
                expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as ExtendedEntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:244:69
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:239:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  13) Entities API
       GET /datasets/:name/entities/:uuid
         should return full entity even if form+submission has been deleted and purged:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:55.564Z',
  current: true,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null,
  data: Object { age: '88', first_name: 'Alice' }
} to be an Entity Def (version)
    expected null to be a string
        expected null to have type string
            expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as EntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:274:69
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:270:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  14) Entities API
       GET /datasets/:name/entities/:uuid/versions
         should return all versions of the Entity:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:57.810Z',
  current: false,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null,
  data: Object { age: '88', first_name: 'Alice' }
} to be an Entity Def (version)
    expected null to be a string
        expected null to have type string
            expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as EntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:317:28
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/entities.js:316:20
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:313:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  15) Entities API
       GET /datasets/:name/entities/:uuid/versions
         should return all versions of the Entity - Extended:
     AssertionError: expected Object {
  createdAt: '2023-05-26T14:53:58.372Z',
  current: false,
  label: 'Alice (88)',
  creatorId: 5,
  userAgent: null,
  data: Object { age: '88', first_name: 'Alice' },
  creator: Object {
    id: 5,
    type: 'user',
    displayName: 'Alice',
    createdAt: '2023-05-26T14:52:41.572Z',
    updatedAt: null,
    deletedAt: null
  }
} to be an Extended Entity Def (version)
    expected Object {
      createdAt: '2023-05-26T14:53:58.372Z',
      current: false,
      label: 'Alice (88)',
      creatorId: 5,
      userAgent: null,
      data: Object { age: '88', first_name: 'Alice' },
      creator: Object {
        id: 5,
        type: 'user',
        displayName: 'Alice',
        createdAt: '2023-05-26T14:52:41.572Z',
        updatedAt: null,
        deletedAt: null
      }
    } to be an Entity Def (version)
        expected null to be a string
            expected null to have type string
                expected 'object' to be 'string'
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value [as ExtendedEntityDef] (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:339:28
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/entities.js:338:20
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:334:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  16) Entities API
       GET /datasets/:name/entities/:uuid/audits
         should return audit logs of the Entity:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/entities.js:455:50
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:439:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  17) Entities API
       GET /datasets/:name/entities/:uuid/audits
         should return audit logs of the Entity when it is created via POST API:
     Error: expected 200 "OK", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/entities.js:474:10
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  18) Entities API
       GET /datasets/:name/entities/:uuid/audits
         should return the latest instance name of a source submission:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/entities.js:509:50
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:502:7
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  19) Entities API
       GET /datasets/:name/entities/:uuid/audits
         should return right approval details when we have multiple approvals:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/entities.js:658:50
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:645:7
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  20) Entities API
       POST /datasets/:name/entities
         should create an Entity:
     Error: expected 200 "OK", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/entities.js:723:10
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:17:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  21) Entities API
       POST /datasets/:name/entities
         should reject if uuid is not unique:
     Error: expected 409 "Conflict", got 500 "Internal Server Error"
      at /home/circleci/repo/test/integration/api/entities.js:750:10
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)
  ----
      at Test._assertStatus (node_modules/supertest/lib/test.js:252:14)
      at /home/circleci/repo/node_modules/supertest/lib/test.js:308:13
      at Test._assertFunction (node_modules/supertest/lib/test.js:285:13)
      at Test.assert (node_modules/supertest/lib/test.js:164:23)
      at Server.localAssert (node_modules/supertest/lib/test.js:120:14)
      at Object.onceWrapper (node:events:627:28)
      at Server.emit (node:events:513:28)
      at Server.emit (node:domain:489:12)
      at emitCloseNT (node:net:1857:8)
      at processTicksAndRejections (node:internal/process/task_queues:82:21)

  22) Entities API
       POST /datasets/:name/entities
         should mark the source as type api:

      AssertionError: expected 'submission' to be 'api'
      + expected - actual

      -submission
      +api
      
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:787:33
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  23) Entities API
       POST /datasets/:name/entities
         should log the entity create event in the audit log:

      AssertionError: expected '12345678-1234-4123-8234-123456789aaa' to equal '12345678-1234-4123-8234-111111111aaa'
      + expected - actual

      -12345678-1234-4123-8234-123456789aaa
      +12345678-1234-4123-8234-111111111aaa
      
      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at /home/circleci/repo/test/integration/api/entities.js:808:40
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /home/circleci/repo/test/integration/api/entities.js:48:3
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  24) api: /sessions
       POST
         should log the action in the audit log:
     TypeError: Cannot read properties of undefined (reading 'should')
      at /home/circleci/repo/test/integration/api/sessions.js:64:39
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  25) api: /forms/:id/submissions
       POST
         should submit if all details are provided:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:952:30
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  26) api: /forms/:id/submissions
       [draft] POST
         should accept submissions:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:1075:32
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  27) api: /forms/:id/submissions
       [draft] POST
         should accept even if the form is not taking submissions:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:1092:32
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  28) api: /forms/:id/submissions
       GET
         should return a list of submissions:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:2542:67
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/submissions.js:2542:20
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  29) api: /forms/:id/submissions
       [draft] GET
         should return a list of submissions:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:2582:67
      at Array.forEach (<anonymous>)
      at /home/circleci/repo/test/integration/api/submissions.js:2582:20
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  30) api: /forms/:id/submissions
       /:instanceId GET
         should return submission details:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:3168:32
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  31) api: /forms/:id/submissions
       [draft] /:instanceId GET
         should return submission details:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/api/submissions.js:3327:34
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  32) api: /forms/:id/submissions
       /:instanceId/versions GET
         should return submission details:
     TypeError: Cannot read properties of null (reading 'should')
      at /home/circleci/repo/test/integration/api/submissions.js:4028:33
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  33) project viewer role
       should be able to get submission detail:
     TypeError: Cannot read properties of null (reading 'should')
      at Assertion.<anonymous> (test/assertions.js:93:22)
      at Assertion.value [as Submission] (node_modules/should/cjs/should.js:337:14)
      at /home/circleci/repo/test/integration/other/roles-project-viewer.js:111:26
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)

  34) worker: entity
       should make an entity
         should log entity creation in audit log:
     TypeError: Cannot read properties of null (reading 'should')
      at /home/circleci/repo/test/integration/worker/entity.js:259:17
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Object.transaction (node_modules/slonik/dist/src/connectionMethods/transaction.js:22:24)
      at async Object.createConnection (node_modules/slonik/dist/src/factories/createConnection.js:97:18)



make: *** [Makefile:39: test-full] Error 34

Exited with code exit status 2
@alxndrsn alxndrsn added the bug label May 26, 2023
@alxndrsn alxndrsn changed the title Missing User-Agent header breaks submissions/entities Missing User-Agent header breaks submissions/entities/datasets May 26, 2023
@github-project-automation github-project-automation bot moved this to 🕒 backlog in ODK Central May 26, 2023
@matthew-white
Copy link
Member

@sadiqkhoja, this might be a good one for you if we're able to fit it in for .3.

@sadiqkhoja sadiqkhoja moved this from 🕒 backlog to ✏️ in progress in ODK Central May 29, 2023
@github-project-automation github-project-automation bot moved this from ✏️ in progress to ✅ done in ODK Central May 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: ✅ done
Development

Successfully merging a pull request may close this issue.

3 participants