Skip to content

File structure

Dmitry Sheiko edited this page Dec 16, 2019 · 5 revisions

Top level

.
├── app               - Electron main process 
├── dist              - app distribution packages
├── docs              - puppetry.app site
├── examples          - Gmail bridge example
├── jest-pkg          - Jest project artifacts
├── node_modules      - NPM modules
├── project-demo      - Demo project
├── project-test      - Project to test all methods
├── screenshots       - Screenshots made with Ctrl-Shift-Alt-4
└── src               - Electron main process 

Electron Main Process

app
├── assets               - app CSS and images
├── build                - build artifacts
├── constant             - constants shared between rocesses
├── main
│   └── vendor
│       └── puppeteer    - Puppeteer device descriptors
├── recorder
│   ├── puppeteer        - Puppeteer device descriptors (in recorder view)  
│   ├── service          - Building targets utils
│   └── webview          - Recorder JavaScript to run on the target
├── resources
│   └── macos            - Mac DMG artifacts
├── __tests__
├── types                - JSDoc types
└── vendor
    └── smalltalk        - Smalltalk (http://github.com/coderaiser/smalltalk) custom build

Electron Renderer Process

src
├── action                                 - Redux actions
│   └── helpers
├── component
│   ├── AbstractComponent.jsx              - Base class for components 
│   ├── AbstractForm.jsx                   - Base class for forms (powered by https://ant.design/components/form/)
│   ├── AbstractPureComponent.jsx          - Base class for pure components 
│   ├── AppLayout.jsx                      - here registered modals
│   ├── ErrorBoundary.jsx                  - global ErrorBoundary component
│   ├── AppLayout
│   │   ├── Main                           - main suite view (targets/test cases/suite settings)  
│   │   │   ├── EditableCell
│   │   │   └── GroupTable
│   │   │       └── TestTable
│   │   │           └── CommandTable
│   │   │               └── Params         - here ParamsFormBuilder.jsx to build params form by JSON-shema
│   │   ├── Project                        - Project panel
│   │   │   ├── Git
│   │   │   ├── Targets
│   │   │   └── Variables
│   │   ├── Settings                       - Settings panel  
│   │   │   └── General
│   │   ├── Sider                          - Side bar 
│   │   │   ├── MainMenu
│   │   │   └── ProjectExplorer
│   │   └── TestReport
│   ├── Global
│   │   ├── BrowseDirectory.jsx            - component to pick a directory
│   │   ├── BrowseFile.jsx                 - component to pick a file
│   │   ├── CheckoutMaster.jsx
│   │   ├── If.jsx                         - React conditions  
│   │   ├── InstantModal.jsx               - light-weight modal
│   │   ├── LearnMore.jsx                  - facade: learn more link 
│   │   ├── Link.jsx
│   │   ├── LoadingTip.jsx                 - shows tips on loading screens  
│   │   ├── Markdown.jsx                   - Markdown to JSX
│   │   ├── Message.js                     - facade: message based on https://ant.design/components/message
│   │   ├── SelectEnv.jsx                  - reusable Select Environment 
│   │   └── Tooltip.jsx                    - facade: tooltip
│   ├── Modal                              - all the modals
│   │   ├── ExportProjectModal
│   │   └── TestReportModal
│   └── Schema                             - content of method forms
│       ├── Assert
│       ├── Jest
│       └── Params
│           ├── Element
│           └── Page
├── container
├── __e2e__
├── error
├── interface                               - contracts (https://github.com/dsheiko/bycontract)
├── reducer
│   ├── helpers
│   ├── project
│   └── suite
├── selector
├── service                                - services/utils 
│   ├── assert.js                          - resolve assertions 
│   ├── io.js                              - any IO related operations
│   ├── TestGenerator.js                   - generates Jest code
│   ├── ExpressionParser.js                - parses template expressions
│   ├── ..
│   └── Export
├── __tests__
└── vendor
    └── puppeteer                          - Puppeteer device descriptors (in recorder view)

Jest project

jest-pkg/
├── lib
│   ├── bootstrap
│   │   ├── cssRegression.js             - CSS-regression testing helpers
│   │   └── extendJest.js                - extends Jest with custom assertions (expect methods)
│   ├── bootstrap.js
│   ├── BrowserSession
│   │   ├── extend.js                    - extends browser session (puppeteer) with helper methods
│   │   └── targetMethods.js             - extends browser session (puppeteer) with elementHandler mehtods
│   ├── BrowserSession.js
│   ├── fix-return-warning.js
│   ├── GaTracking                       - GA tracking testing methods  
│   │   ├── helpers.js
│   │   └── UaBeacon.js
│   ├── helpers.js                       - utils 
│   └── interactive-mode                 - addon for interactive mode
│       ├── toolbox.css
│       └── toolbox.js
└── package.json