Commit 311d8a13 authored by Kaloyan Bojilski's avatar Kaloyan Bojilski
Browse files

unit test

parent 2e002af0
Showing with 62 additions and 35 deletions
+62 -35
import {Util} from "./util";
import {MethodUtil} from "./method-util";
describe('change role', () => {
it('change student role to teacher and add to course', () => {
Util.loginSuccess('Admin', 'user', '12345678', cy);
Util.changeStudentRoleToTeacher('user', 'hgf', "Gosho", "PHD", cy);
Util.addTeacherToCourse('courz', 'hgf', cy);
MethodUtil.loginSuccess('Admin', 'user', '12345678', cy);
MethodUtil.changeStudentRoleToTeacher('user', 'hgf', "Gosho", "PHD", cy);
MethodUtil.addTeacherToCourse('courz', 'hgf', cy);
})
})
import {Util} from "./util";
import {MethodUtil} from "./method-util";
describe('choose course', () => {
it('choose course and add a grade to student', () => {
Util.loginSuccess('Admin', 'user', '12345678', cy);
Util.addGradeToStudentForCourse('Rizzlogy', 'coolname', 5.5, cy);
MethodUtil.loginSuccess('Admin', 'user', '12345678', cy);
MethodUtil.addGradeToStudentForCourse('Rizzlogy', 'coolname', 5.5, cy);
})
})
import {Util} from "./util";
import {MethodUtil} from "./method-util";
describe('choose course', () => {
it('choose course and delete teacher and delete grades', () => {
Util.loginSuccess('Admin', 'user', '12345678', cy);
Util.deleteTeacherFromCourse('courz', cy);
MethodUtil.loginSuccess('Admin', 'user', '12345678', cy);
MethodUtil.deleteTeacherFromCourse('Geography', cy);
})
})
import {Util} from "./util";
import {MethodUtil} from "./method-util";
describe('create course', () => {
it('create course and add teacher and three students', () => {
Util.loginSuccess('Admin', 'user', '12345678', cy);
Util.createCourse('Test', 20, cy);
Util.addTeacherToCourse('Test', 'teacher', cy);
Util.addStudentToCourse('Test', 'studi', cy);
Util.addStudentToCourse('Test', 'studi123', cy);
Util.addStudentToCourse('Test', 'stu', cy);
MethodUtil.loginSuccess('Admin', 'user', '12345678', cy);
MethodUtil.createCourse('Test', 20, cy);
MethodUtil.addTeacherToCourse('Test', 'teacher', cy);
MethodUtil.addStudentToCourse('Test', 'studi', cy);
MethodUtil.addStudentToCourse('Test', 'studi123', cy);
MethodUtil.addStudentToCourse('Test', 'stu', cy);
})
})
import {Util} from "./util";
import {MethodUtil} from "./method-util";
describe('login', () => {
it('Visits the initial project page', () => {
cy.visit('/')
cy.contains('Login')
Util.loginSuccess('Student', 'studi', '123', cy);
Util.loginSuccess('Teacher', 'teacher', '12345678', cy);
Util.loginSuccess('Admin', 'user', '12345678', cy);
Util.loginFail(cy);
MethodUtil.loginSuccess('Student', 'studi', '123', cy);
MethodUtil.loginSuccess('Teacher', 'teacher', '12345678', cy);
MethodUtil.loginSuccess('Admin', 'user', '12345678', cy);
MethodUtil.loginFail(cy);
})
})
export class Util {
export class MethodUtil {
static loginSuccess(role: string, username: string, password: string, cy: Cypress.cy &CyEventEmitter) {
const url = 'http://localhost:4200/';
......@@ -21,8 +21,6 @@ export class Util {
static createCourse(courseName: string, totalHours: number, cy: Cypress.cy &CyEventEmitter) {
const urlCoursePage = 'http://localhost:4200/course/Math';
const urlAddStudent = 'http://localhost:8080/grades/add-student-to-course-by-username';
const urlCreateCourse = 'http://localhost:8080/courses/add';
cy.visit(urlCoursePage);
cy.get('#courseName').type(courseName);
cy.get('#totalHours').type(`${totalHours}`);
......
......@@ -20,14 +20,10 @@ fdescribe('CoursePageComponent', () => {
return of(course);
})
/*courseServiceSpy.addStudentToCourse.and.callFake(function (username, courseName) {
//response
})*/
TestBed.configureTestingModule({
declarations: [CoursePageComponent],
imports: [
RouterTestingModule.withRoutes([])
RouterTestingModule
],
providers: [
{
......
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { LoginFormComponent } from './login-form.component';
import {LoginServiceService} from "../../services/login-service.service";
import {of} from "rxjs";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
describe('LoginFormComponent', () => {
fdescribe('LoginFormComponent', () => {
let component: LoginFormComponent;
let fixture: ComponentFixture<LoginFormComponent>;
let loginService: jasmine.SpyObj<LoginServiceService>
beforeEach(() => {
loginService = jasmine.createSpyObj('LoginServiceService', ['onSubmit']);
TestBed.configureTestingModule({
declarations: [LoginFormComponent]
declarations: [LoginFormComponent],
imports: [FormsModule, ReactiveFormsModule],
providers: [
{
provide: LoginServiceService,
useValue: loginService
}
]
});
fixture = TestBed.createComponent(LoginFormComponent);
component = fixture.componentInstance;
......@@ -18,4 +30,26 @@ describe('LoginFormComponent', () => {
it('should create', () => {
expect(component).toBeTruthy();
});
it('should call loginService.login with username and password on form submission', () => {
const username = 'test-user';
const password = 'test-password';
const jwtToken = 'fake-jwt-token';
;
component.username = username;
component.password = password;
loginService.onSubmit.and.returnValue(of(
{
jwt: jwtToken,
userRole: 'admin',
username: username
}
))
const mySpy = spyOn(localStorage, 'setItem');
component.onSubmit();
expect(loginService.onSubmit).toHaveBeenCalledWith(username, password);
expect(mySpy).toHaveBeenCalledWith('auth_token', jwtToken);
});
});
import { TestBed } from '@angular/core/testing';
import {TestBed} from '@angular/core/testing';
import { CourseService } from './course.service';
import {CourseService} from './course.service';
import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
import {Teacher} from "../RequestResponseObjects/teacher";
fdescribe('CourseService', () => {
let service: CourseService;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment