Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5d8022720 | ||
|
|
bfa9110c77 | ||
|
|
915a2ee299 | ||
|
|
91884b567e | ||
|
|
9dad6888b4 | ||
|
|
1afef0f1f3 | ||
|
|
3cfd3090aa | ||
|
|
8e2ed6e38a | ||
|
|
e92b1623c8 | ||
|
|
78e1d5cbf6 | ||
|
|
bd110b22f3 | ||
|
|
a53306b9d7 | ||
|
|
ec535233fa | ||
|
|
35fa968128 | ||
|
|
ef781abaca | ||
|
|
3752b78f58 | ||
|
|
923258f5bc | ||
|
|
00065d55a6 | ||
|
|
e92ff01981 | ||
|
|
7a66d67296 | ||
|
|
99ea1614ff | ||
|
|
8a9f81b8de | ||
|
|
741b2f2d8e | ||
|
|
afa11918a6 | ||
|
|
e2bb122d9e | ||
|
|
21c51bf672 | ||
|
|
90a85a7c1f | ||
|
|
fde562e2b4 | ||
|
|
5e26b4a899 | ||
|
|
b4d81cff68 | ||
|
|
53c7ca45f1 | ||
|
|
0e320a9395 | ||
|
|
791137eb65 | ||
|
|
bb4a4eeb17 | ||
|
|
39ca9dc35f | ||
|
|
c651ef9616 | ||
|
|
a3dd705190 | ||
|
|
f6564194b6 | ||
|
|
dcb6b9fdce | ||
|
|
4e93b29edf | ||
|
|
ccc5226f72 | ||
|
|
4bc54f67fe | ||
|
|
3f0148e4b7 | ||
|
|
1a6f6f5c68 | ||
|
|
06aaacfd3f | ||
|
|
0548115516 | ||
|
|
7945d1a729 | ||
|
|
8ea8a35829 | ||
|
|
31a3a207d6 | ||
|
|
bd6d91d7ac | ||
|
|
598c987031 | ||
|
|
84217b67d8 | ||
|
|
9e29c9d69c | ||
|
|
4bbe32ba93 | ||
|
|
ff518ee916 | ||
|
|
f4cd931d51 | ||
|
|
436b57a3da | ||
|
|
60acadd24e | ||
|
|
218f792f13 | ||
|
|
91e346d4c4 | ||
|
|
afbece7d70 | ||
|
|
88d43b7414 | ||
|
|
6b5b522be1 | ||
|
|
637e9167b4 | ||
|
|
e082f5d062 | ||
|
|
ead1beb9d7 | ||
|
|
8389991b2c | ||
|
|
79258836b1 | ||
|
|
11052c83aa | ||
|
|
a27f17d642 | ||
|
|
9083883bf2 | ||
|
|
fffd1ddcc2 |
@@ -1,11 +1,9 @@
|
|||||||
name: Android APK
|
name: Android APK
|
||||||
# F5: genera una APK debug verificable contra la API productiva F5.
|
# F3.2: genera la APK debug verificable antes de promover la integración multi-Acta.
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- 'main'
|
|
||||||
- 'release/f5-android-test'
|
|
||||||
- 'feature/f2-2*'
|
- 'feature/f2-2*'
|
||||||
- 'feature/f2-3*'
|
- 'feature/f2-3*'
|
||||||
- 'feature/f2-4*'
|
- 'feature/f2-4*'
|
||||||
@@ -18,8 +16,6 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- 'android-app/**'
|
- 'android-app/**'
|
||||||
- 'api-v3/src/auth/**'
|
- 'api-v3/src/auth/**'
|
||||||
- 'api-v3/src/inspection-visits/**'
|
|
||||||
- 'api-v3/src/inspection-acts/**'
|
|
||||||
- '.github/workflows/android.yml'
|
- '.github/workflows/android.yml'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
@@ -62,7 +58,7 @@ jobs:
|
|||||||
- name: Upload APK
|
- name: Upload APK
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: DH-Inspeccion-F5-0.13.0-debug
|
name: DH-Inspeccion-F3.2-0.12.0-debug
|
||||||
path: android-app/app/build/outputs/apk/debug/app-debug.apk
|
path: android-app/app/build/outputs/apk/debug/app-debug.apk
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
retention-days: 30
|
retention-days: 14
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ android {
|
|||||||
applicationId = "com.korexlabs.dhinspeccion"
|
applicationId = "com.korexlabs.dhinspeccion"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 36
|
targetSdk = 36
|
||||||
versionCode = 20
|
versionCode = 19
|
||||||
versionName = "0.13.0"
|
versionName = "0.12.0"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|||||||
@@ -44,8 +44,6 @@ const STRUCTURAL_CHILD: Record<string, string | undefined> = {
|
|||||||
instalacion: 'subinstalacion',
|
instalacion: 'subinstalacion',
|
||||||
};
|
};
|
||||||
|
|
||||||
const OTHER_FAMILY_SQL = "source_reference LIKE 'SYSTEM:F3.1:OTHER%' OR source_reference LIKE 'F5:SYSTEM:OTHER:%'";
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class F3FieldInventoryStructureService {
|
export class F3FieldInventoryStructureService {
|
||||||
constructor(
|
constructor(
|
||||||
@@ -204,10 +202,10 @@ export class F3FieldInventoryStructureService {
|
|||||||
return this.dataSource.query(`
|
return this.dataSource.query(`
|
||||||
SELECT id,code,name,level,information_labels AS "informationLabels",
|
SELECT id,code,name,level,information_labels AS "informationLabels",
|
||||||
source_reference AS "sourceReference",
|
source_reference AS "sourceReference",
|
||||||
(${OTHER_FAMILY_SQL}) AS "isOther"
|
(source_reference LIKE 'SYSTEM:F3.1:OTHER%') AS "isOther"
|
||||||
FROM inventory_families
|
FROM inventory_families
|
||||||
WHERE level='INSTALLATION' AND is_active=true
|
WHERE level='INSTALLATION' AND is_active=true
|
||||||
ORDER BY (${OTHER_FAMILY_SQL}) ASC,name,code
|
ORDER BY (source_reference LIKE 'SYSTEM:F3.1:OTHER%') ASC,name,code
|
||||||
`) as Promise<FamilyRow[]>;
|
`) as Promise<FamilyRow[]>;
|
||||||
}
|
}
|
||||||
if (expectedTypeCode === 'subinstalacion') {
|
if (expectedTypeCode === 'subinstalacion') {
|
||||||
@@ -221,13 +219,13 @@ export class F3FieldInventoryStructureService {
|
|||||||
SELECT family.id,family.code,family.name,family.level,
|
SELECT family.id,family.code,family.name,family.level,
|
||||||
family.information_labels AS "informationLabels",
|
family.information_labels AS "informationLabels",
|
||||||
family.source_reference AS "sourceReference",
|
family.source_reference AS "sourceReference",
|
||||||
(family.source_reference LIKE 'SYSTEM:F3.1:OTHER%' OR family.source_reference LIKE 'F5:SYSTEM:OTHER:%') AS "isOther"
|
(family.source_reference LIKE 'SYSTEM:F3.1:OTHER%') AS "isOther"
|
||||||
FROM inventory_family_parent_rules rule
|
FROM inventory_family_parent_rules rule
|
||||||
JOIN inventory_families family ON family.id=rule.child_family_id
|
JOIN inventory_families family ON family.id=rule.child_family_id
|
||||||
WHERE rule.parent_family_id=$1::uuid
|
WHERE rule.parent_family_id=$1::uuid
|
||||||
AND family.level='SUBINSTALLATION'
|
AND family.level='SUBINSTALLATION'
|
||||||
AND family.is_active=true
|
AND family.is_active=true
|
||||||
ORDER BY (family.source_reference LIKE 'SYSTEM:F3.1:OTHER%' OR family.source_reference LIKE 'F5:SYSTEM:OTHER:%') ASC,family.name,family.code
|
ORDER BY (family.source_reference LIKE 'SYSTEM:F3.1:OTHER%') ASC,family.name,family.code
|
||||||
`, [parent.inventoryFamilyId]) as Promise<FamilyRow[]>;
|
`, [parent.inventoryFamilyId]) as Promise<FamilyRow[]>;
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
import assert from 'node:assert/strict';
|
|
||||||
import { readFileSync } from 'node:fs';
|
|
||||||
import { resolve } from 'node:path';
|
|
||||||
import test from 'node:test';
|
|
||||||
|
|
||||||
function mountedRepoFile(path: string): string {
|
|
||||||
return readFileSync(resolve(process.cwd(), '..', path), 'utf8');
|
|
||||||
}
|
|
||||||
|
|
||||||
test('F5 Android test cut targets production API and has a distinct installable debug version', () => {
|
|
||||||
const gradle = mountedRepoFile('android-app/app/build.gradle.kts');
|
|
||||||
|
|
||||||
assert.match(gradle, /versionCode = 20/);
|
|
||||||
assert.match(gradle, /versionName = "0\.13\.0"/);
|
|
||||||
assert.match(gradle, /https:\/\/dhv2\.korexlabs\.com\/api\/v3\//);
|
|
||||||
assert.match(gradle, /applicationIdSuffix = "\.debug"/);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('F5 field inventory exposes Other families as reviewable choices to Android', () => {
|
|
||||||
const service = readFileSync(
|
|
||||||
resolve(process.cwd(), 'src/inspection-visits/f3-field-inventory-structure.service.ts'),
|
|
||||||
'utf8',
|
|
||||||
);
|
|
||||||
|
|
||||||
assert.match(service, /F5:SYSTEM:OTHER:%/);
|
|
||||||
assert.match(service, /AS "isOther"/);
|
|
||||||
assert.match(service, /isOtherFamily: family\.isOther/);
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user