# Troubleshooting

### An invalid amount of arguments were specified for a Suite

Suite initialisers accept only one, two, or three arguments, as shown by the following snippets:

{% tabs %}
{% tab title="one-arguments.js" %}

```javascript
// 1 arguments
suite('name', function (suite) {
  suite('an immediate suite', function (suite, test) {
    test('an immediate test', function () {})
  })
})
```

{% endtab %}

{% tab title="two-arguments.js" %}

```javascript
// 2 arguments
suite('name', function (suite, test) {
  test('an immediate test', function () {})
})
```

{% endtab %}

{% tab title="three-arguments.js" %}

```javascript
// 3 arguments
suite('name', function (suite, test, done) {
  setTimeout(function () {
    test('a delayed test', function () {})
    done()
  }, 1000)
})
```

{% endtab %}
{% endtabs %}

This is to ensure a suite is not confused with a test.

Resolving this error involves checking your logic to ensure that you actually want to use a Suite:

* if you do want to use a suite, then update the specified arguments to a combination mentioned above
* if you don't want to use a suite, then you may want to use a test instead

### An invalid amount of arguments were specified for a Test

Tests only accept zero or one arguments, as shown by the following snippets:

{% tabs %}
{% tab title="zero-arguments.js" %}

```javascript
// 0 arguments
test('an immediate test', function () {
  // completes right away
})

```

{% endtab %}

{% tab title="one-arguments.js" %}

```javascript
// 1 arguments
test('an asynchronous test', function (done) {
  setTimeout(function () {
    done()
  }, 1000)
})

```

{% endtab %}
{% endtabs %}

This is to ensure a test is not confused with a suite.

Resolving this error involves checking your logic to ensure that you actually want to use a Suite:

* if you do want to use a test, then update the specified arguments to a combination mentioned above
* if you don't want to use a test, then you may want to use a suite instead
