Skip to content

Commit

Permalink
CRUD Observable tests
Browse files Browse the repository at this point in the history
  • Loading branch information
troyanskiy committed Aug 10, 2019
1 parent 87108f0 commit cdb0769
Show file tree
Hide file tree
Showing 34 changed files with 939 additions and 84 deletions.
3 changes: 2 additions & 1 deletion angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "ngx-resource-mono:build"
"browserTarget": "ngx-resource-mono:build",
"proxyConfig": "proxy.conf.json"
},
"configurations": {
"production": {
Expand Down
2 changes: 1 addition & 1 deletion projects/ngx-resource/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ngx-resource/core",
"version": "7.0.0",
"version": "7.1.0",
"description": "Core of resource library",
"author": "Roman Rosluk <[email protected]>",
"license": "MIT",
Expand Down
5 changes: 5 additions & 0 deletions projects/ngx-resource/core/src/lib/Declarations.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import { Observable, Subscription } from 'rxjs';
import { Provider } from '@angular/core';

export type TTypePromiseNull<T = {}> = T | Promise<T> | null;

export interface IResourceModuleConfig {
handler?: Provider;
}

export interface IResourceParamsBase {
url?: string;
pathPrefix?: string;
Expand Down
35 changes: 26 additions & 9 deletions projects/ngx-resource/core/src/lib/Resource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,29 @@ import { ResourceGlobalConfig } from './ResourceGlobalConfig';
import { ResourceHelper } from './ResourceHelper';
import { ResourceHandler } from './ResourceHandler';
import { ResourceModule } from './ResourceModule';
import { Optional } from '@angular/core';

export class Resource {

protected requestHandler: ResourceHandler;
protected get requestHandler(): ResourceHandler {

if (!this._requestHandler) {

if (!ResourceModule.injector) {
throw new Error('ResourceModule.injector is missing');
}

this._requestHandler = ResourceModule.injector.get(ResourceHandler);

if (!this._requestHandler) {
throw new Error('ResourceHandler provider is missing');
}

}

return this._requestHandler;

}

private $url: string | null = null;
private $pathPrefix: string | null = null;
Expand All @@ -27,19 +46,17 @@ export class Resource {
private $params: {} | null = null;
private $query: {} | null = null;

constructor(requestHandler?: ResourceHandler) {
// tslint:disable-next-line:variable-name
private _requestHandler: ResourceHandler | null = null;

if (!requestHandler) {
requestHandler = ResourceModule.injector.get(ResourceHandler);
}
constructor(@Optional() requestHandler?: ResourceHandler) {

if (!requestHandler) {
throw new Error('ResourceHandler is missing');
if (requestHandler) {
this._requestHandler = requestHandler;
}

this.requestHandler = requestHandler;

(this.constructor as any).instance = this;

}

/**
Expand Down
4 changes: 2 additions & 2 deletions projects/ngx-resource/core/src/lib/ResourceAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ export function ResourceAction(methodOptions?: IResourceAction) {
}

// tslint:disable-next-line: only-arrow-functions
return function(target: Resource, propertyKey: string) {
return function (target: Resource, propertyKey: string) {

(target as any)[propertyKey] = function(...args: any[]): any {
(target as any)[propertyKey] = function (...args: any[]): any {

const callbacks: any = args.filter((arg: any) => typeof arg === 'function');
const data: any = args.filter((arg: any) => typeof arg !== 'function');
Expand Down
9 changes: 3 additions & 6 deletions projects/ngx-resource/core/src/lib/ResourceModule.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import { Injector, ModuleWithProviders, NgModule, Provider } from '@angular/core';
import { Injector, ModuleWithProviders, NgModule } from '@angular/core';
import { ResourceHandlerNoop } from './ResourceHandlerNoop';
import { ResourceHandler } from './ResourceHandler';

export interface IResourceModuleConfig {
handler?: Provider;
}
import { IResourceModuleConfig } from './Declarations';

@NgModule()
export class ResourceModule {

static injector: Injector;
static injector: Injector | null = null;

/**
* For root
Expand Down
2 changes: 1 addition & 1 deletion projects/ngx-resource/core/src/lib/ResourceParams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { IResourceParams } from './Declarations';
export function ResourceParams(params: IResourceParams = {}) {

// tslint:disable-next-line: only-arrow-functions
return function(target: any) {
return function (target: any) {

target.prototype.getResourceOptions = () => params;

Expand Down
5 changes: 1 addition & 4 deletions projects/ngx-resource/core/src/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import 'zone.js/dist/zone';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';

declare const require: any;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ngx-resource/handler-cordova-advanced-http",
"version": "7.0.0",
"version": "7.1.0",
"description": "Resource Handler based on cordova-advanced-http",
"author": "Roman Rosluk <[email protected]>",
"license": "MIT",
Expand All @@ -24,7 +24,6 @@
"resource-cordova-advanced-http"
],
"peerDependencies": {
"@ngx-resource/core": "^7.0.0",
"@ngx-resource/handler-ngx-http": "^7.0.0"
"@ngx-resource/core": "^7.1.0"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ export class ResourceHandlerCordovaAdvancedHttp extends ResourceHandler {
case ResourceResponseBodyType.ArrayBuffer:
const fileReader = new FileReader();

fileReader.onload = function() {
fileReader.onload = function () {
ret.body = this.result;

if (isError) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { ModuleWithProviders, NgModule, Provider } from '@angular/core';
import { ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { IResourceModuleConfig, ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';
import { ResourceHandlerCordovaAdvancedHttp } from './ResourceHandlerCordovaAdvancedHttp';

export interface IResourceModuleConfig {
handler?: Provider;
}

@NgModule()
export class ResourceModule extends ResourceModuleCore {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import 'zone.js/dist/zone';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';

declare const require: any;

Expand Down
5 changes: 2 additions & 3 deletions projects/ngx-resource/handler-fetch/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ngx-resource/handler-fetch",
"version": "7.0.0-beta.1",
"version": "7.1.0-beta.1",
"description": "Resource handler for fetch",
"author": "Roman Rosluk <[email protected]>",
"license": "MIT",
Expand All @@ -20,7 +20,6 @@
"Resource"
],
"peerDependencies": {
"@ngx-resource/core": "^7.0.0",
"@ngx-resource/handler-ngx-http": "^7.0.0"
"@ngx-resource/core": "^7.1.0"
}
}
7 changes: 2 additions & 5 deletions projects/ngx-resource/handler-fetch/src/lib/ResourceModule.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { ModuleWithProviders, NgModule, Provider } from '@angular/core';
import { ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { IResourceModuleConfig, ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';
import { ResourceHandlerFetch } from './ResourceHandlerFetch';

export interface IResourceModuleConfig {
handler?: Provider;
}

@NgModule()
export class ResourceModule extends ResourceModuleCore {
Expand Down
5 changes: 1 addition & 4 deletions projects/ngx-resource/handler-fetch/src/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import 'zone.js/dist/zone';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';

declare const require: any;

Expand Down
6 changes: 3 additions & 3 deletions projects/ngx-resource/handler-ngx-http/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ngx-resource/handler-ngx-http",
"version": "7.0.0",
"version": "7.1.0",
"description": "Resource handler for angular",
"author": "Roman Rosluk <[email protected]>",
"license": "MIT",
Expand All @@ -27,7 +27,7 @@
"peerDependencies": {
"@angular/common": ">= 6.0.0",
"@angular/core": ">= 6.0.0",
"rxjs": "^6.0.0",
"@ngx-resource/core": "^7.0.0"
"@ngx-resource/core": "^7.1.0",
"rxjs": "^6.0.0"
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
import { ModuleWithProviders, NgModule, Provider } from '@angular/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';
import { IResourceModuleConfig, ResourceHandler, ResourceModule as ResourceModuleCore } from '@ngx-resource/core';
import { ResourceHandlerHttpClient } from './ResourceHandlerHttpClient';

export interface IResourceModuleConfig {
handler?: Provider;
}

@NgModule()
export class ResourceModule extends ResourceModuleCore {

Expand Down
5 changes: 1 addition & 4 deletions projects/ngx-resource/handler-ngx-http/src/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import 'zone.js/dist/zone';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';

declare const require: any;

Expand Down
6 changes: 6 additions & 0 deletions proxy.conf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"/api": {
"target": "http://127.0.0.1:3222",
"secure": false
}
}
93 changes: 93 additions & 0 deletions server/node_modules/body-parser/package.json

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

Loading

0 comments on commit cdb0769

Please sign in to comment.