EDA Block
EDA Block은 회로도와 PCB 레이아웃을 관리하는 모듈입니다.
주요 기능
1. Block 생성 (CreateEdaBlock)
2. Block 조회 (EdaBlockConnection)
3. Block 수정 (UpdateEdaBlock)
4. Block 삭제 (DeleteEdaBlock)
5. Block 복제 (DuplicateEdaBlock)
6. Block Schematic 파싱 (EdaBlockSchematicParse)
7. Block Footprint 파싱 (EdaBlockFootprintParse)
블록 등록
schematicUrl파일을 기본으로 블록이름과 함께 블록생성 요청 API
Operation
mutation createEdaBlock($input: CreateEdaBlockInput!) {
createEdaBlock(input: $input) {
name
blockType
accessType
status
ioPorts {
name
ioType
pinType
minVoltage
maxVoltage
}
}
}Variables
{
"input": {
"schematicUrl": "https://d2isodt8obvphf.cloudfront.net/DATA/SCH_Codec-to-1W-Speaker_2024-05-20.json",
"name": "test"
}
}블록 수정
블록수정 요청시 여러 파라미터값을 수정요청하여 업데이트함.
Operation
mutation updateEdaBlock($input: UpdateEdaBlockInput!) {
updateEdaBlock(input: $input) {
name
thumbnailUrl
accessType
memo
category
materials {
name
prefix
option
footprint
integrationStatus
supplyItem {
supplier
mouserPartNumber
}
}
ioPorts {
name
ioType
minVoltage
maxVoltage
pinType
}
}
}Variables
{
"input": {
"footprintUrl": "https://d2isodt8obvphf.cloudfront.net/DATA/PCB_PCB_Codec-to-1W-Speaker-copy_2024-05-20.json",
"id": "1",
"accessType": "PRIVATE",
"memo": "dsdf"
}
}블록 조회
블록 조회
Operation
query edaBlock($input: EdaBlockInput!) {
edaBlock(input:$input) {
id
memo
ioPorts {
ioType
pinType
}
materials {
name
prefix
footprint
integrationStatus
}
name
category
blockType
}
}Variables
{
"input": {
"id": "1"
}
}EDA (Electronic Design Automation)
EDA 모듈은 회로도와 PCB 레이아웃의 설계, 검증, 변환을 담당하는 모듈입니다.
주요 기능
1. 프로젝트 생성 및 관리
2. 프로젝트 레이아웃 업데이트
3. Schematic 변환 및 저장
4. Footprint 변환 및 저장
테스트 방법
1. 단위 테스트 실행
# EDA 프로젝트 테스트
go test -v ./internal/eda/usecase/project_test.go
# EDA 블록 테스트
go test -v ./internal/eda/usecase/block_test.go
# EDA 로직 테스트
go test -v ./internal/eda/usecase/logic_test.go2. 통합 테스트 실행
# 전체 EDA 테스트 실행
go test -v ./internal/eda/...
# 특정 테스트만 실행
go test -v ./internal/eda/usecase/... -run TestEdaProject3. 테스트 커버리지 확인
# 테스트 커버리지 생성
go test -coverprofile=coverage.out ./internal/eda/...
# 커버리지 리포트 확인
go tool cover -html=coverage.out테스트 데이터 준비
-
테스트용 프로젝트 파일 준비
testdata/project.json: 테스트용 프로젝트 데이터testdata/blocks/: 테스트용 블록 파일들
-
환경 변수 설정
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_REGION=ap-northeast-2
export S3_BUCKET=your_bucket_name테스트 시나리오
-
프로젝트 생성 테스트
- 새로운 프로젝트 생성
- 프로젝트 데이터 검증
- S3 업로드 확인
-
레이아웃 업데이트 테스트
- 블록 위치 변경
- 보드 크기 변경
- 이미지 업데이트
- 홀 정보 업데이트
-
파일 변환 테스트
- SCH 파일 변환
- BRD 파일 변환
- SVG 이미지 생성
-
에러 케이스 테스트
- 잘못된 입력 데이터
- S3 업로드 실패
- 변환 실패