Clone this repo:
  1. 5bbbcf9 Add an archive descriptor (#21) by Natalie Weizenbaum · 10 weeks ago master 1.2.0
  2. c969c20 Fix missing_return violation newly enforced in Dart ~2.3.2-dev.0.1 (#20) by Sam Rawlins · 3 months ago
  3. d994f23 Enable and fix a number of lints, test on the oldest supported SDK (#19) by Kevin Moore · 4 months ago
  4. 75af367 Merge pull request #18 from dart-lang/dart-2-ready by Bob Nystrom · 1 year, 1 month ago 1.1.1
  5. 8c430e9 Don't run Travis on stable. by Bob Nystrom · 1 year, 1 month ago

The test_descriptor package provides a convenient, easy-to-read API for defining and verifying directory structures in tests.

We recommend that you import this library with the d prefix. The d.dir() and d.file() functions are the main entrypoints. They define a filesystem structure that can be created using Descriptor.create() and verified using Descriptor.validate(). For example:

import 'dart:io';

import 'package:test_descriptor/test_descriptor.dart' as d;

void main() {
  test("Directory.rename", () async {
    await d.dir("parent", [
      d.file("sibling", "sibling-contents"),
      d.dir("old-name", [
        d.file("child", "child-contents")
      ])
    ]).create();

    await new Directory("${d.sandbox}/parent/old-name")
        .rename("${d.sandbox}/parent/new-name");

    await d.dir("parent", [
      d.file("sibling", "sibling-contents"),
      d.dir("new-name", [
        d.file("child", "child-contents")
      ])
    ]).validate();
  });
}

By default, descriptors create entries in a temporary sandbox directory, d.sandbox. A new sandbox is automatically created the first time you create a descriptor in a given test, and automatically deleted once the test finishes running.

This package is term_glyph aware. It will decide whether to use ASCII or Unicode glyphs based on the glyph.ascii attribute.