Skip to content

Commit

Permalink
Merge 2177084 into 51c6566
Browse files Browse the repository at this point in the history
  • Loading branch information
FrancescoBorzi committed Mar 28, 2020
2 parents 51c6566 + 2177084 commit 3ad775c
Show file tree
Hide file tree
Showing 13 changed files with 190 additions and 29 deletions.
Expand Up @@ -40,6 +40,10 @@
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="areaId">areaId</label>
<keira-area-selector-btn
[config]="{ name: 'areaId' }"
[control]="editorService.form.controls.areaId"
></keira-area-selector-btn>
<input [formControlName]="'areaId'" id="areaId" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
Expand Down
Expand Up @@ -320,7 +320,7 @@ describe('CreatureSpawn integration tests', () => {
page.expectUniqueError();
});

it('changing a value via FactionSelector should correctly work', async () => {
it('changing a value via MapSelector should correctly work', async () => {
const field = 'map';
const sqliteQueryService = TestBed.inject(SqliteQueryService);
spyOn(sqliteQueryService, 'query').and.returnValue(of(
Expand Down
Expand Up @@ -13,6 +13,7 @@ import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selec
import { SingleValueSelectorModule } from '@keira-shared/modules/selectors/single-value-selector/single-value-selector.module';
import { CreatureSpawnService } from './creature-spawn.service';
import { MapSelectorModule } from '@keira-shared/modules/selectors/map-selector/map-selector.module';
import { AreaSelectorModule } from '@keira-shared/modules/selectors/area-selector/area-selector.module';

@NgModule({
declarations: [
Expand All @@ -29,6 +30,7 @@ import { MapSelectorModule } from '@keira-shared/modules/selectors/map-selector/
FlagsSelectorModule,
SingleValueSelectorModule,
MapSelectorModule,
AreaSelectorModule,
],
exports: [
CreatureSpawnComponent,
Expand Down
Expand Up @@ -40,6 +40,10 @@
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="areaId">areaId</label>
<keira-area-selector-btn
[config]="{ name: 'areaId' }"
[control]="editorService.form.controls.areaId"
></keira-area-selector-btn>
<input [formControlName]="'areaId'" id="areaId" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
Expand Down
Expand Up @@ -10,6 +10,7 @@ import { GameobjectSpawn } from '@keira-types/gameobject-spawn.type';
import { GameobjectHandlerService } from '../gameobject-handler.service';
import { MultiRowEditorPageObject } from '@keira-testing/multi-row-editor-page-object';
import { SaiGameobjectHandlerService } from '../sai-gameobject-handler.service';
import { SqliteQueryService } from '@keira-shared/services/sqlite-query.service';

class GameobjectSpawnPage extends MultiRowEditorPageObject<GameobjectSpawnComponent> {}

Expand Down Expand Up @@ -304,6 +305,42 @@ describe('GameobjectSpawn integration tests', () => {

page.expectUniqueError();
});

it('changing a value via AreaSelector should correctly work', async () => {
const field = 'areaId';
const sqliteQueryService = TestBed.inject(SqliteQueryService);
spyOn(sqliteQueryService, 'query').and.returnValue(of(
[{ m_ID: 123, m_ParentAreaID: 456, m_AreaName_lang: 'Mock Area' }]
));

// because this is a multi-row editor
page.clickRowOfDatatable(0);
await page.whenReady();

page.clickElement(page.getSelectorBtn(field));
await page.whenReady();
page.expectModalDisplayed();

page.clickSearchBtn();
await fixture.whenStable();
page.clickRowOfDatatableInModal(0);
await page.whenReady();
page.clickModalSelect();
await page.whenReady();

page.expectDiffQueryToContain(
'DELETE FROM `gameobject` WHERE (`id` = 1234) AND (`guid` IN (0));\n' +
'INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`) VALUES\n' +
'(0, 1234, 0, 0, 123, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \'\', 0);'
);
page.expectFullQueryToContain(
'DELETE FROM `gameobject` WHERE (`id` = 1234);\n' +
'INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`) VALUES\n' +
'(0, 1234, 0, 0, 123, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \'\', 0),\n' +
'(1, 1234, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \'\', 0),\n' +
'(2, 1234, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \'\', 0);'
);
});
});
});

Expand Up @@ -13,6 +13,7 @@ import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selec
import { SingleValueSelectorModule } from '@keira-shared/modules/selectors/single-value-selector/single-value-selector.module';
import { GameobjectSpawnService } from './gameobject-spawn.service';
import { MapSelectorModule } from '@keira-shared/modules/selectors/map-selector/map-selector.module';
import { AreaSelectorModule } from '@keira-shared/modules/selectors/area-selector/area-selector.module';

@NgModule({
declarations: [
Expand All @@ -29,6 +30,7 @@ import { MapSelectorModule } from '@keira-shared/modules/selectors/map-selector/
FlagsSelectorModule,
SingleValueSelectorModule,
MapSelectorModule,
AreaSelectorModule,
],
exports: [
GameobjectSpawnComponent,
Expand Down
23 changes: 19 additions & 4 deletions src/app/features/item/item-template/item-template.component.html
Expand Up @@ -198,6 +198,10 @@
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">
<label class="control-label" for="LanguageID">LanguageID</label>
<keira-language-selector-btn
[config]="{ name: 'LanguageID' }"
[control]="editorService.form.controls.LanguageID"
></keira-language-selector-btn>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'The language that the item text is written in. See the Languages DBC file for the IDs of all of the languages.'"
Expand Down Expand Up @@ -264,6 +268,10 @@
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">
<label class="control-label" for="area">area</label>
<keira-area-selector-btn
[config]="{ name: 'area' }"
[control]="editorService.form.controls.area"
></keira-area-selector-btn>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'The ID of the zone in which this item can be used.'"
Expand Down Expand Up @@ -314,10 +322,18 @@
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">
<label class="control-label" for="ItemLimitCategory">ItemLimitCategory</label>
<keira-item-limit-category-selector-btn
[config]="{ name: 'ItemLimitCategory' }"
[control]="editorService.form.controls.ItemLimitCategory"
></keira-item-limit-category-selector-btn>
<input [formControlName]="'ItemLimitCategory'" id="ItemLimitCategory" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">
<label class="control-label" for="HolidayId">HolidayId</label>
<keira-holiday-selector-btn
[config]="{ name: 'HolidayId' }"
[control]="editorService.form.controls.HolidayId"
></keira-holiday-selector-btn>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'See the Holidays DBC file for the IDs of all of the holidays.'"
Expand Down Expand Up @@ -599,11 +615,10 @@
<div class="row">
<div class="form-group col-12 col-sm-6 col-md-4 col-lg col-xl-5">
<label class="control-label" for="socketBonus">socketBonus</label>
<keira-single-value-selector-btn
<keira-item-enchantment-selector-btn
[config]="{ name: 'socketBonus' }"
[control]="editorService.form.controls.socketBonus"
[config]="{ options: SOCKET_BONUS, name: 'socketBonus' }"
[modalClass]="'modal-md'"
></keira-single-value-selector-btn>
></keira-item-enchantment-selector-btn>
<input [formControlName]="'socketBonus'" id="socketBonus" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg col-xl-5">
Expand Down
Expand Up @@ -21,7 +21,6 @@ import { TOTEM_CATEGORY } from '@keira-constants/options/totem-category';
import { FOOD_TYPE } from '@keira-constants/options/foot-type';
import { ITEM_FLAGS_CUSTOM } from '@keira-constants/flags/item-flags-custom';
import { DAMAGE_TYPE } from '@keira-constants/options/damage-type';
import { SOCKET_BONUS } from '@keira-constants/options/socket-bonus';
import { STAT_TYPE } from '@keira-constants/options/stat-type';

@Component({
Expand Down Expand Up @@ -49,7 +48,6 @@ export class ItemTemplateComponent extends SingleRowEditorComponent<ItemTemplate
public readonly FOOD_TYPE = FOOD_TYPE;
public readonly ITEM_FLAGS_CUSTOM = ITEM_FLAGS_CUSTOM;
public readonly DAMAGE_TYPE = DAMAGE_TYPE;
public readonly SOCKET_BONUS = SOCKET_BONUS;
public readonly STAT_TYPE = STAT_TYPE;

/* istanbul ignore next */ // because of: https://github.com/gotwarlost/istanbul/issues/690
Expand Down
101 changes: 101 additions & 0 deletions src/app/features/item/item-template/item-template.integration.spec.ts
Expand Up @@ -10,6 +10,7 @@ import { EditorPageObject } from '@keira-testing/editor-page-object';
import { ItemTemplate } from '@keira-types/item-template.type';
import { ItemHandlerService } from '../item-handler.service';
import { ITEM_SUBCLASS } from '@keira-constants/options/item-class';
import { SqliteQueryService } from '@keira-shared/services/sqlite-query.service';

class ItemTemplatePage extends EditorPageObject<ItemTemplateComponent> {}

Expand Down Expand Up @@ -191,6 +192,106 @@ describe('ItemTemplate integration tests', () => {
page.expectFullQueryToContain('4100');
});

it('changing a value via ItemEnchantmentSelector should correctly work', async () => {
const field = 'socketBonus';
const sqliteQueryService = TestBed.inject(SqliteQueryService);
spyOn(sqliteQueryService, 'query').and.returnValue(of(
[{ id: 1248, name: 'Mock Enchantment', conditionId: 456 }]
));

page.clickElement(page.getSelectorBtn(field));
await page.whenReady();
page.expectModalDisplayed();

page.clickSearchBtn();
await fixture.whenStable();
page.clickRowOfDatatableInModal(0);
await page.whenReady();
page.clickModalSelect();
await page.whenReady();

page.expectDiffQueryToContain(
'UPDATE `item_template` SET `socketBonus` = 1248 WHERE (`entry` = 1234);'
);
// Note: full query check has been shortened here because the table is too big, don't do this in other tests unless necessary
page.expectFullQueryToContain('1248');
});

it('changing a value via HolidaySelector should correctly work', async () => {
const field = 'HolidayId';
const sqliteQueryService = TestBed.inject(SqliteQueryService);
spyOn(sqliteQueryService, 'query').and.returnValue(of(
[{ id: 1248, name: 'Mock Holiday' }]
));

page.clickElement(page.getSelectorBtn(field));
await page.whenReady();
page.expectModalDisplayed();

page.clickSearchBtn();
await fixture.whenStable();
page.clickRowOfDatatableInModal(0);
await page.whenReady();
page.clickModalSelect();
await page.whenReady();

page.expectDiffQueryToContain(
'UPDATE `item_template` SET `HolidayId` = 1248 WHERE (`entry` = 1234);'
);
// Note: full query check has been shortened here because the table is too big, don't do this in other tests unless necessary
page.expectFullQueryToContain('1248');
});

it('changing a value via ItemLimitCategorySelector should correctly work', async () => {
const field = 'ItemLimitCategory';
const sqliteQueryService = TestBed.inject(SqliteQueryService);
spyOn(sqliteQueryService, 'query').and.returnValue(of(
[{ id: 1248, name: 'Mock ItemLimitCategory', count: 2, isGem: 1 }]
));

page.clickElement(page.getSelectorBtn(field));
await page.whenReady();
page.expectModalDisplayed();

page.clickSearchBtn();
await fixture.whenStable();
page.clickRowOfDatatableInModal(0);
await page.whenReady();
page.clickModalSelect();
await page.whenReady();

page.expectDiffQueryToContain(
'UPDATE `item_template` SET `ItemLimitCategory` = 1248 WHERE (`entry` = 1234);'
);
// Note: full query check has been shortened here because the table is too big, don't do this in other tests unless necessary
page.expectFullQueryToContain('1248');
});

it('changing a value via LanguageSelector should correctly work', async () => {
const field = 'LanguageID';
const sqliteQueryService = TestBed.inject(SqliteQueryService);
spyOn(sqliteQueryService, 'query').and.returnValue(of(
[{ id: 1248, name: 'Mock LanguageID' }]
));

page.clickElement(page.getSelectorBtn(field));
await page.whenReady();
page.expectModalDisplayed();

page.clickSearchBtn();
await fixture.whenStable();
page.clickRowOfDatatableInModal(0);
await page.whenReady();
page.clickModalSelect();
await page.whenReady();

page.expectDiffQueryToContain(
'UPDATE `item_template` SET `LanguageID` = 1248 WHERE (`entry` = 1234);'
);
// Note: full query check has been shortened here because the table is too big, don't do this in other tests unless necessary
page.expectFullQueryToContain('1248');
});

describe('the subclass field', () => {
it('should show the selector button only if class has a valid value', () => {
page.setInputValueById('class', 100);
Expand Down
10 changes: 10 additions & 0 deletions src/app/features/item/item-template/item-template.module.ts
Expand Up @@ -14,6 +14,11 @@ import { ItemTemplateService } from './item-template.service';
import { SpellSelectorModule } from '@keira-shared/modules/selectors/spell-selector/spell-selector.module';
import { FactionSelectorModule } from '@keira-shared/modules/selectors/faction-selector/faction-selector.module';
import { MapSelectorModule } from '@keira-shared/modules/selectors/map-selector/map-selector.module';
import { AreaSelectorModule } from '@keira-shared/modules/selectors/area-selector/area-selector.module';
import { ItemEnchantmentSelectorModule } from '@keira-shared/modules/selectors/item-enchantment-selector/item-enchantment-selector.module';
import { HolidaySelectorModule } from '@keira-shared/modules/selectors/holiday-selector/holiday-selector.module';
import { LanguageSelectorModule } from '@keira-shared/modules/selectors/language-selector/language-selector.module';
import { ItemLimitCategorySelectorModule } from '@keira-shared/modules/selectors/item-limit-category-selector/item-limit-category-selector.module';

@NgModule({
declarations: [
Expand All @@ -31,6 +36,11 @@ import { MapSelectorModule } from '@keira-shared/modules/selectors/map-selector/
SpellSelectorModule,
FactionSelectorModule,
MapSelectorModule,
AreaSelectorModule,
ItemEnchantmentSelectorModule,
HolidaySelectorModule,
LanguageSelectorModule,
ItemLimitCategorySelectorModule,
],
exports: [
ItemTemplateComponent,
Expand Down
12 changes: 0 additions & 12 deletions src/app/shared/constants/options/socket-bonus.ts

This file was deleted.

Expand Up @@ -5,14 +5,14 @@
<form [formGroup]="searchService.queryForm">
<div class="row">
<ng-container [formGroup]="searchService.fields">
<div class="form-group col-3">
<div class="form-group col-2">
<input [formControlName]="'id'" type="number" class="form-control form-control-sm" id="id" placeholder="ID">
</div>
<div class="form-group col-5">
<input [formControlName]="'name'" class="form-control form-control-sm" id="name" placeholder="ItemEnchantment Name">
<div class="form-group col-4">
<input [formControlName]="'name'" class="form-control form-control-sm" id="name" placeholder="Name">
</div>
<div class="form-group col-3">
<input [formControlName]="'conditionId'" type="number" class="form-control form-control-sm" id="conditionId" placeholder="Condition ID">
<div class="form-group col-2">
<input [formControlName]="'conditionId'" type="number" class="form-control form-control-sm" id="conditionId" placeholder="Condition">
</div>
</ng-container>
<div class="form-group col-2">
Expand Down
Expand Up @@ -5,17 +5,17 @@
<form [formGroup]="searchService.queryForm">
<div class="row">
<ng-container [formGroup]="searchService.fields">
<div class="form-group col-3">
<div class="form-group col-2">
<input [formControlName]="'id'" type="number" class="form-control form-control-sm" id="id" placeholder="ID">
</div>
<div class="form-group col-4">
<div class="form-group col-3">
<input [formControlName]="'name'" class="form-control form-control-sm" id="name" placeholder="Name">
</div>
<div class="form-group col-3">
<div class="form-group col-2">
<input [formControlName]="'count'" type="number" class="form-control form-control-sm" id="count" placeholder="Count">
</div>
<div class="form-group col-3">
<input [formControlName]="'isGem'" type="number" class="form-control form-control-sm" id="isGem" placeholder="IsGem">
<div class="form-group col-1">
<input [formControlName]="'isGem'" type="number" class="form-control form-control-sm" id="isGem" placeholder="Gem?">
</div>
</ng-container>
<div class="form-group col-2">
Expand Down

0 comments on commit 3ad775c

Please sign in to comment.