# FixtureJS

Tool for creating projects inside GoodData platform programmatically in node.js

## Usage

1. Add package to your project

    **Using npm**

    `npm install @gooddata/fixtures`

    **Using yarn**

    `yarn add @gooddata/fixtures`

2. Import the module inside your project

    ```javascript
    import { createFixture } from '@gooddata/fixtures';
    ```

3. Use the `createFixture function`

    ```javascript
    createFixture(basePath, username, password, hostname, authorizationToken, projectTitle)
    ```

4. Use TIGER function

    ```javascript
    createTigerWorkspace(workspaceTitle, token, host, backend)
    createTigerWorkspaceWithPrefix(workspacePrefix, token, host, backend)
    setTigerWorkspaceLayout(workspaceId, token, host, backend, declarativeWorkspaceModel)
    setTigerWorkspaceLayoutFromFixtures(workspaceId, fixtureType, dataSource, token, host, backend)
    setTigerWorkspaceLayoutFromCustomFile(workspaceId, token, host, backend, dataSource, fixtureFile)
    createMdObjects(configPath, workspaceId, token, host, backend)
    deleteTigerWorkspace(workspaceId, token, host, backend)
    cleanupExpiredTigerWorkspaces(workspacePrefix, timeExpired, includeWS, sizeWS, token, host, backend)
    cleanupExpiredTigerUsers(userPrefix, timeExpired, sizeList, token, host, backend)
    getOrganizationLayout( token, host, backend)
    exportOrganizationLayout(token, host, backend, outputFile)
    ```
    
    **Note**
    For `setTigerWorkspaceLayoutFromCustomFile` method, it's used for workspace permission test from KD repo, the fixtureFile is created from fixture's KD repository

## Development

Install [Node.js](http://nodejs.org) (node 18.17.0, npm v9.6.7) and [Yarn](https://classic.yarnpkg.com) 1.22.19.

Install dependencies:
```
yarn install --frozen-lockfile
```

## Release

  See this [guide](../../README.md#fixture-js---release-version-to-npm)
