Skip to content

Commit

Permalink
fix: peerDependencies (#3)
Browse files Browse the repository at this point in the history
* fix: peerDependencies

* docs: Readme
  • Loading branch information
mauriciolauffer committed Apr 21, 2024
1 parent 567fe69 commit e862609
Show file tree
Hide file tree
Showing 10 changed files with 67 additions and 112 deletions.
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,3 @@ jobs:
with:
token: ${{ secrets.GH_PAT }}
release-type: node
package-name: cap-js-mockdata
56 changes: 55 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,55 @@
# sap-cap-mockdata-plugin
# SAP CAP Mockdata Plugin

[![npm](https://img.shields.io/npm/v/cap-js-mockdata)](https://www.npmjs.com/package/cap-js-mockdata) [![test](https://github.com/mauriciolauffer/cap-js-mockdata/actions/workflows/test.yml/badge.svg)](https://github.com/mauriciolauffer/cap-js-mockdata/actions/workflows/test.yml)

A [SAP CAP plugin](https://cap.cloud.sap/docs/node.js/cds-plugins) to generate CSV files populated with mock data for testing.

This plugin uses [Faker](https://fakerjs.dev/) to generate meaningful mock data both automatically and through annotations.

## Setup

All you need to do is to install the plugin and add the `@Mockdata` annotations to your entities.

### Installation

Install the plugin as an npm module:

```shell
npm i -D cap-js-mockdata
```

### Annotation

The annotation tag is `@Mockdata`. You can add and combine all valid [Faker module APIs](https://fakerjs.dev/api/).

```js
// db/schema.cds

entity Customers : cuid, managed {
name String @Mockdata: {person: 'fullName'};
sex String @Mockdata: {person: 'sex'};
creditCard String @Mockdata: {finance: 'creditCardNumber'};
phone String @Mockdata: {phone: 'number'};
ipAddress String @Mockdata: {internet: 'ipv4'};
email String @Mockdata: {internet: 'email'};
street String @Mockdata: {location: 'streetAddress'};
country String @Mockdata: {location: 'countryCode'};
};
```

### Using

Once you have installed the plugin and added the annotations, or not, you can execute the following command in a terminal:

```shell
cds add mockdata
```

The `cds add mockdata` command will create CSV files for every supported CDS Entity. The CSV files will be created into the `db/data` folder, the filenames will be something like `namespace-entityName.csv` and their content will look like:

|ID |createdAt |createdBy |modifiedAt |modifiedBy |name |sex |creditCard |phone |ipAddress |email |street |country |
|------------------------------------|----------------------------------------------------------|---------------|----------------------------------------------------------|-----------------------|------------------|------|------------------------|-------------------|---------------|-----------------------------|-------------------|-----------------------|
|bef3c7b8-1232-4860-bded-efd51443e508|Sun Oct 06 2024 15:55:24 GMT-0300 (Brasilia Standard Time)|Julius_Hintz48 |Sun Nov 03 2024 14:38:56 GMT-0300 (Brasilia Standard Time)|Brain_Mosciski |Edgar Langosh |female|3564-4519-0923-7387 |801.226.6645 x01258|214.155.102.159|Marcellus.Fritsch@hotmail.com|640 Bramley Close |Austria |
|96ac7211-691a-4c2a-8fc0-0ae509693193|Thu Mar 28 2024 20:32:35 GMT-0300 (Brasilia Standard Time)|Clotilde_DAmore|Thu Nov 23 2023 10:49:44 GMT-0300 (Brasilia Standard Time)|Brendan.Corwin-Schinner|Erica McDermott |male |6567-6280-8822-5389-0611|(240) 938-1223 |37.230.118.100 |Shayne78@gmail.com |1803 Feeney Park |Cocos (Keeling) Islands|
|4fc525bc-e22b-4c55-a447-0e4c9fef1ffd|Fri Feb 09 2024 15:21:45 GMT-0300 (Brasilia Standard Time)|Lance78 |Fri Feb 14 2025 05:25:29 GMT-0300 (Brasilia Standard Time)|Donny_Blanda |Joseph Lehner |male |4686210527760 |312-939-7109 |14.207.231.127 |Daija_Oberbrunner94@gmail.com|79422 Collin Divide|Portugal |
|872b47a8-0bb1-47af-bc02-ef7290cff633|Sat Feb 22 2025 01:34:16 GMT-0300 (Brasilia Standard Time)|Mateo22 |Sun Sep 15 2024 18:42:41 GMT-0300 (Brasilia Standard Time)|Myrtle52 |Leigh Wintheiser I|male |6759-2563-9161-5976 |553.277.9724 x231 |10.88.166.234 |Elyssa.Adams79@gmail.com |139 Park Drive |Macao |
2 changes: 1 addition & 1 deletion examples/cap-app/db/mockdata.cds
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using {validatorplugin.test.db as db} from './schema';
using {mockdataplugin.test.db as db} from './schema';

annotate db.TestingAnnotation with {
name @Mockdata: {person: 'fullName'};
Expand Down
2 changes: 1 addition & 1 deletion examples/cap-app/db/schema.cds
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace validatorplugin.test.db;
namespace mockdataplugin.test.db;

using {
cuid,
Expand Down
9 changes: 2 additions & 7 deletions examples/cap-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,13 @@
"add": "cds add mockdata"
},
"dependencies": {
"@sap/cds": "^7.8.1",
"@sap/cds": ">=7",
"cap-js-mockdata": "*"
},
"devDependencies": {
"@cap-js/sqlite": "^1.6.0"
},
"cds": {
"requires": {},
"log": {
"levels": {
"validator-plugin": "error"
}
}
"requires": {}
}
}
6 changes: 3 additions & 3 deletions examples/cap-app/srv/services.cds
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using {validatorplugin.test.db as db} from '../db/schema';
using {mockdataplugin.test.db as db} from '../db/schema';

service ValidatorPluginService {
service MockdataPluginService {
entity TestingAnnotation as projection on db.TestingAnnotation;
entity TestingNoAnnotation as projection on db.TestingNoAnnotation;
entity TestingAssociation as projection on db.TestingAssociation;
Expand All @@ -11,4 +11,4 @@ service ValidatorPluginService {
entity TestingVirtual as projection on db.TestingVirtual;
};

annotate ValidatorPluginService.TestingDraft with @odata.draft.enabled;
annotate MockdataPluginService.TestingDraft with @odata.draft.enabled;
14 changes: 2 additions & 12 deletions examples/cap-app/test/CdsTypes.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import supertest from 'supertest';

const cds = require('@sap/cds');
let request = {};
const endpoint = '/odata/v4/validator-plugin/CdsTypes';
const endpoint = '/odata/v4/mockdata-plugin/TestingCdsTypes';
const defaults = {
headers: {
'content-type': 'application/json;IEEE754Compatible=true'
}
};

describe('Testing CDS types with no validation', () => {
describe('Testing CDS types', () => {
beforeAll(() => {
request = supertest.agent(cds.app)
.set(defaults.headers);
Expand All @@ -21,14 +21,4 @@ describe('Testing CDS types with no validation', () => {
.get(endpoint)
.expect(200);
});

it('Should POST and return OK', async () => {
const payload = {
field_String: 'something'
};
await request
.post(endpoint)
.send(payload)
.expect(201);
});
});
83 changes: 0 additions & 83 deletions examples/cap-app/test/ValidateCdsTypes.test.js

This file was deleted.

4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"vitest": "^1.2.2"
},
"peerDependencies": {
"@sap/cds": "^7.8.1"
"@sap/cds": ">=7"
},
"repository": {
"type": "git",
Expand Down

0 comments on commit e862609

Please sign in to comment.