0

I am using AVA for testing. I have 2 files. In file1.spec.js, I am creating a user, and once the user is created a userId is generated and returned. I need this userId in file2.spec.js to test some other API calls specific to this user. How can I successfully export the userId created in file1.spec.js and import it into file2.spec.js? Thanks in advance!

I have tried the following:

file1.spec.js:

method: 'POST', url: '/api/users', data: setupFixture.postUsersAtLocation1 }).catch(err => { console.log(err.response.data); return err.response; });

if (result.status === 200) {
    _int.userId = result.data.userId;

SCENARIO 1: module.exports = {userId, userId1};

SCENARIO 2: export {userId1}; export let userId = _int.userId;

file2.spec.js:

import test from 'ava';

import setup from './setup.spec.js';

const {userId, userId1} = setup;

var userIdA = userId; var userId1A = userId1;

When I run this, it complains that file2.spec.js has an unexpected identifier (test) in import test from 'ava'. If I remove "import setup from './setup.spec.js';", and all after it, it no longer complains about test, but I never get the variables imported, either way.

1 Answers1

0

Each test file is executed in a new worker process. Test files should not depend on another file having been executed first. Instead try and use a different database / table / IDs in each test file, then share setup code (if necessary) through helpers.

Mark Wubben
  • 3,329
  • 1
  • 19
  • 16