function assertEmissions(
			sourceText,
			possibleQueries,
			getExpectedEmissions,
		) {
			it(possibleQueries.join("; "), () => {
				const ast = espree.parse(sourceText, ESPREE_CONFIG);

				const actualEmissions = getEmissions(ast, possibleQueries);
				const expectedEmissions = getExpectedEmissions(ast);

				assert.deepStrictEqual(actualEmissions, expectedEmissions);

				/*
				 * `assert.deepStrictEqual()` compares objects by their properties.
				 * Here, we additionally compare node objects by reference to ensure
				 * the emitted objects are expected instances from the AST.
				 */
				actualEmissions.forEach((actualEmission, index) => {
					assert.strictEqual(
						actualEmission[1],
						expectedEmissions[index][1],
						"Expected a node instance from the AST",
					);
				});
			});
		}
Creates a test case that asserts a particular sequence of traverser emissions
@param {string} sourceText The source text that should be parsed and traversed
@param {string[]} possibleQueries A collection of selectors that rules are listening for
@param {(ast: ASTNode) => Array[]} getExpectedEmissions A function that accepts the AST and returns a list of the emissions that the
traverser is expected to produce, in order.
Each element of this list is an array where the first element is a selector (string), and the second is an AST node
This should only include emissions that appear in possibleQueries.
@returns {void}