Skip to content

Instantly share code, notes, and snippets.

beforeEach(async () => {
TestBed.configureTestingModule({
// 親Container, 子Component
declarations: [SampleContainerComponent, SampleComponent],
});
await TestBed.compileComponents();
});
fetch('https://hoge.com/users/1', {method: 'GET'})
import '../mocks/browser'; // add code
export const environment = {
production: false,
};
import { setupWorker, rest } from 'msw'
export const mocks = [
rest.get('https://hoge.com/users/:user', (req, res, ctx) => {
const { user } = req.params
return res(
ctx.status(200),
ctx.json({
name: `mocked-${user}`,
// 例(myorgは自分のアプリ名)
npx msw init apps/myorg/src
npm install msw --save-dev
# or
yarn add msw --dev
// appNameは自分のアプリ名
nx g nx-ng-esbuild:add-esbuild-config appName
yarn add -D nx-ng-esbuild
import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
@NgModule({
declarations: [
StoreModule.forRoot({ LoginState: loginReducer}), // LoginStateはselectorで書いたキー
EffectsModule.forRoot([LoginEffects]),
],
import { Injectable } from '@angular/core';
import { Actions, createEffect, ofType } from '@ngrx/effects';
import { map, switchMap } from 'rxjs/operators';
import { doLogin, setLoginStateSuccess, setErrorMessage } from './login.action';
import { LoginService } from '../../services/login/login.service';
@Injectable()
export class LoginEffects {
setLoginStateSuccess$ = createEffect(() =>