Revision 8fae0052c8e0888953da159045909ea2c1336b3d authored by Semen Zhydenko on 11 February 2018, 02:58:13 UTC, committed by jekyllbot on 11 February 2018, 02:58:13 UTC
Merge pull request 6764
1 parent 33017b7
Raw File
collections_dir.feature
Feature: Collections Directory
  As a hacker who likes to structure content without clutter
  I want to be able to organize my collections under a single directory
  And render them from there

  Scenario: Custom collections_dir containing only posts
    And I have a collections/_posts directory
    And I have the following post within the "collections" directory:
      | title         | date       | content         |
      | Gathered Post | 2009-03-27 | Random Content. |
    And I have a "_config.yml" file with content:
    """
    collections_dir: collections
    """
    When I run jekyll build
    Then I should get a zero exit status
    And the _site directory should exist
    And I should see "Random Content." in "_site/2009/03/27/gathered-post.html"

  Scenario: Rendered collection in custom collections_dir also containing posts
    Given I have a collections/_puppies directory
    And I have the following document under the "puppies" collection within the "collections" directory:
      | title  | date       | content            |
      | Rover  | 2007-12-31 | content for Rover. |
    And I have a collections/_posts directory
    And I have the following post within the "collections" directory:
      | title         | date       | content         |
      | Gathered Post | 2009-03-27 | Random Content. |
    And I have a "_config.yml" file with content:
    """
    collections:
      puppies:
        output: true

    collections_dir: collections
    """
    When I run jekyll build
    Then I should get a zero exit status
    And the _site directory should exist
    And the "_site/puppies/rover.html" file should exist
    And I should see "Random Content." in "_site/2009/03/27/gathered-post.html"

  Scenario: Rendered collection in custom collections_dir with posts at the site root
    Given I have a collections/_puppies directory
    And I have the following document under the "puppies" collection within the "collections" directory:
      | title  | date       | content            |
      | Rover  | 2007-12-31 | content for Rover. |
    And I have a _posts directory
    And I have the following post:
      | title        | date       | content         |
      | Post At Root | 2009-03-27 | Random Content. |
    And I have a "_config.yml" file with content:
    """
    collections:
      puppies:
        output: true

    collections_dir: collections
    """
    When I run jekyll build
    Then I should get a zero exit status
    And the _site directory should exist
    And the "_site/puppies/rover.html" file should exist
    And the "_site/2009/03/27/post-at-root.html" file should not exist
    And the _site/_posts directory should not exist

  Scenario: Rendered collection in custom collections_dir also containing drafts
    Given I have a collections/_puppies directory
    And I have the following document under the "puppies" collection within the "collections" directory:
      | title  | date       | content            |
      | Rover  | 2007-12-31 | content for Rover. |
    And I have a collections/_drafts directory
    And I have the following draft within the "collections" directory:
      | title          | date       | content         |
      | Gathered Draft | 2009-03-27 | Random Content. |
    And I have a "_config.yml" file with content:
    """
    collections:
      puppies:
        output: true

    collections_dir: collections
    """
    When I run jekyll build --drafts
    Then I should get a zero exit status
    And the _site directory should exist
    And the "_site/puppies/rover.html" file should exist
    And I should see "Random Content." in "_site/2009/03/27/gathered-draft.html"
    And the _site/collections directory should not exist

  Scenario: Rendered collection in custom collections_dir with drafts at the site root
    Given I have a collections/_puppies directory
    And I have the following document under the "puppies" collection within the "collections" directory:
      | title  | date       | content            |
      | Rover  | 2007-12-31 | content for Rover. |
    And I have a _drafts directory
    And I have the following draft:
      | title         | date       | content         |
      | Draft At Root | 2009-03-27 | Random Content. |
    And I have a "_config.yml" file with content:
    """
    collections:
      puppies:
        output: true

    collections_dir: collections
    """
    When I run jekyll build --drafts
    Then I should get a zero exit status
    And the _site directory should exist
    And the "_site/puppies/rover.html" file should exist
    And the "_site/2009/03/27/draft-at-root.html" file should not exist

  Scenario: A complex site with collections posts and drafts at various locations
    Given I have a gathering/_puppies directory
    And I have a gathering/_posts directory
    And I have a gathering/_drafts directory
    And I have a _puppies directory
    And I have a _posts directory
    And I have a _drafts directory
    And I have the following document under the "puppies" collection within the "gathering" directory:
      | title               | date       | content            |
      | Rover in Gathering  | 2007-12-31 | content for Rover. |
    And I have the following document under the puppies collection:
      | title               | date       | content            |
      | Rover At Root       | 2007-12-31 | content for Rover. |
    And I have the following post within the "gathering" directory:
      | title               | date       | content            |
      | Post in Gathering   | 2009-03-27 | Totally nothing.   |
    And I have the following post:
      | title               | date       | content            |
      | Post At Root        | 2009-03-27 | Totally nothing.   |
    And I have the following draft within the "gathering" directory:
      | title               | date       | content            |
      | Draft In Gathering  | 2009-03-27 | This is a draft.   |
    And I have the following draft:
      | title               | date       | content            |
      | Draft At Root       | 2009-03-27 | This is a draft.   |
    And I have a "_config.yml" file with content:
    """
    collections:
      puppies:
        output: true

    collections_dir: gathering
    """
    And I have a "gathering/_puppies/static_file.txt" file that contains "Static content."
    And I have a gathering/_puppies/nested directory
    And I have a "gathering/_puppies/nested/static_file.txt" file that contains "Nested Static content."
    When I run jekyll build --drafts
    Then I should get a zero exit status
    And the _site directory should exist
    And the "_site/puppies/rover-in-gathering.html" file should exist
    And the "_site/2009/03/27/post-in-gathering.html" file should exist
    And the "_site/2009/03/27/draft-in-gathering.html" file should exist
    And the "_site/2009/03/27/draft-at-root.html" file should not exist
    And the "_site/puppies/rover-at-root.html" file should not exist
    And I should see exactly "Static content." in "_site/puppies/static_file.txt"
    And I should see exactly "Nested Static content." in "_site/puppies/nested/static_file.txt"
    And the _site/gathering directory should not exist
    And the _site/_posts directory should not exist
back to top