# test.coordination/core/analyzers/blocking.analyzer.test.ts

> 24 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-coordination-core-analyzers-blocking-analyzer-test-ts
Source text: https://banes-lab.com/source/testing/test.coordination/core/analyzers/blocking.analyzer.test.ts.txt

Listed in [test.coordination/core/analyzers](https://banes-lab.com/api/source/testing/test.coordination/core/analyzers.md), after [test.coordination/core/analyzers/binding.analyzer.test.ts](https://banes-lab.com/source/testing/test.coordination/core/analyzers/binding.analyzer.test.ts.md) and before [test.coordination/core/analyzers/board.analyzer.test.ts](https://banes-lab.com/source/testing/test.coordination/core/analyzers/board.analyzer.test.ts.md).

## Contained in

- [test.coordination/core/analyzers](https://banes-lab.com/anatomy/testing/folder-testing-test-coordination-core-analyzers.md)

## Source

```typescript
import { describe, it } from "vitest";
import assert from "node:assert/strict";
import { ungatedRows } from "coordination-surface/tools/core/analyzers/blocking.analyzer.ts";

describe("ungatedRows", () => {
    it("reports a body row whose last cell is empty, reading the header for the width", () => {
        const source = [
            "| id | claim | gate |",
            "| --- | --- | :-: |",
            "| A-1 | a claim | venue-check |",
            "| A-2 | another |  |",
            "| A-3 | short |",
        ].join("\n");
        assert.deepEqual(ungatedRows(source), [{ id: "A-2", line: 4 }]);
    });

    it("starts a new table after a line that is not a row", () => {
        const source = ["| id | gate |", "| B-1 |  |", "prose between tables", "| id | gate |", "| C-1 |  |"].join(
            "\n",
        );
        assert.deepEqual(ungatedRows(source), [
            { id: "B-1", line: 2 },
            { id: "C-1", line: 5 },
        ]);
    });
});
```
