jinqu-odata icon indicating copy to clipboard operation
jinqu-odata copied to clipboard

cast to class does not work with Value<T>

Open buchatsky opened this issue 2 years ago • 1 comments

Steps to reproduce

The following test fails:

        const prv = new MockRequestProvider({ value: getCompanies() });
        const svc = new ODataService("api", prv);
        const result = await svc.createQuery<ICompany>("Companies").inlineCount().toArrayAsync(Company);

        result.value.forEach((r) => expect(r).to.be.instanceOf(Company));

Expected behavior

plainToClass() to be applied to the nested value object (either array or a single object) in case of inlineCount or responce options.

Actual behavior

plainToClass() is applied to the surrounding Value<T> literal, not to its value. When query returns an array, and ctor represents a class, its constructor is fired only once on the Value object.

jinqu-odata version

1.1.3

buchatsky avatar Feb 28 '22 20:02 buchatsky

Again, have a fix but cannot create a clear PR till you merge the previous one. PS. Kiev is under missles attacks from time to time, every my row of code can be the last)

buchatsky avatar Feb 28 '22 20:02 buchatsky