feat: implement method to Record model to allow it to convert itself to a SaveRecordRequest
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { type RecordValue } from './RecordValue';
|
import { type RecordValue } from './RecordValue';
|
||||||
|
import { SaveRecordRequest } from './SaveRecordRequest';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class Record - A record in an app.
|
* @class Record - A record in an app.
|
||||||
@@ -53,4 +54,13 @@ export class Record {
|
|||||||
public addValues(fieldData: Array<RecordValue<any>>): void {
|
public addValues(fieldData: Array<RecordValue<any>>): void {
|
||||||
this.fieldData = this.fieldData.concat(fieldData);
|
this.fieldData = this.fieldData.concat(fieldData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public convertToSaveRecordRequest(): SaveRecordRequest {
|
||||||
|
const fields = this.fieldData.reduce((acc, cur) => {
|
||||||
|
acc.set(cur.fieldId, cur.value);
|
||||||
|
return acc;
|
||||||
|
}, new Map<number, any>());
|
||||||
|
|
||||||
|
return new SaveRecordRequest(this.appId, this.recordId, fields);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,4 +120,35 @@ describe('Record', function () {
|
|||||||
.with.lengthOf(4);
|
.with.lengthOf(4);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('convertToSaveRecordRequest', function () {
|
||||||
|
it('should be defined', function () {
|
||||||
|
expect(Record.prototype.convertToSaveRecordRequest).to.not.be.undefined;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be a function', function () {
|
||||||
|
expect(Record.prototype.convertToSaveRecordRequest).to.be.a('function');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have a method that has 0 parameters', function () {
|
||||||
|
expect(Record.prototype.convertToSaveRecordRequest).to.have.lengthOf(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return a SaveRecordRequest object', function () {
|
||||||
|
const record = new Record(1, 2, [
|
||||||
|
new RecordValue(RecordValueType.String, 1, 1),
|
||||||
|
new RecordValue(RecordValueType.String, 2, 'test'),
|
||||||
|
]);
|
||||||
|
const saveRecordRequest = record.convertToSaveRecordRequest();
|
||||||
|
expect(saveRecordRequest).to.have.property('appId', 1);
|
||||||
|
expect(saveRecordRequest).to.have.property('recordId', 2);
|
||||||
|
expect(saveRecordRequest)
|
||||||
|
.to.have.property('fields')
|
||||||
|
.that.is.a('map')
|
||||||
|
.with.lengthOf(2);
|
||||||
|
|
||||||
|
expect(saveRecordRequest.fields.get(1)).to.equal(1);
|
||||||
|
expect(saveRecordRequest.fields.get(2)).to.equal('test');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user